Re: Maintaining accents with "COPY" ? - Mailing list pgsql-general

From Erik Wienhold
Subject Re: Maintaining accents with "COPY" ?
Date
Msg-id 1398526026.221236.1685017430977@office.mailbox.org
Whole thread Raw
In response to Re: Maintaining accents with "COPY" ?  ("Peter J. Holzer" <hjp-pgsql@hjp.at>)
List pgsql-general
> On 25/05/2023 13:26 CEST Peter J. Holzer <hjp-pgsql@hjp.at> wrote:
>
> On 2023-05-25 07:14:40 +0000, Laura Smith wrote:
> > I'm currently doing a CSV export using COPY:
> >
> > COPY (select * from foo where bar='foo') TO '/tmp/bar.csv' DELIMITER ',' CSV HEADER;
> >
> > This works great apart from accents are not preserved in the output,
> > for example é gets converted to random characters, e.g. √© or similar.
>
> How do you check the output?
>
> If a single character is turned into 2 or 3 characters the issue is
> usually that the program which produces the output (in the case of COPY
> I think that would be the PostgreSQL server, not the client) produces
> UTF-8, but the program consuming it expects an 8-bit character set
> (typically windows-1252). See if oyu can tell that program that the file
> is in UTF-8.
>
> > How can I preserve accents ?
>
> They probably already are preserved.

You're right.  The bytes are probably interpreted as Mac OS Roman:

    $ echo é | iconv -f macintosh
    é
    $ echo -n é | xxd
    00000000: c3a9

--
Erik



pgsql-general by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: Question regarding specifics of GIN and pg_trgm performance and potential use of show_trgm to improve it
Next
From: Erik Wienhold
Date:
Subject: Re: Maintaining accents with "COPY" ?