Re: Maintaining accents with "COPY" ?

Поиск
Список
Период
Сортировка
От Erik Wienhold
Тема Re: Maintaining accents with "COPY" ?
Дата
Msg-id 1398526026.221236.1685017430977@office.mailbox.org
обсуждение исходный текст
Ответ на Re: Maintaining accents with "COPY" ?  ("Peter J. Holzer" <hjp-pgsql@hjp.at>)
Список 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 по дате отправления:

Предыдущее
От: Tomas Vondra
Дата:
Сообщение: Re: Question regarding specifics of GIN and pg_trgm performance and potential use of show_trgm to improve it
Следующее
От: Erik Wienhold
Дата:
Сообщение: Re: Maintaining accents with "COPY" ?