Re: COPY command file name encoding issue (UTF8/WIN1252) - Mailing list pgsql-general

From Albe Laurenz
Subject Re: COPY command file name encoding issue (UTF8/WIN1252)
Date
Msg-id A737B7A37273E048B164557ADEF4A58B365B7246@ntex2010a.host.magwien.gv.at
Whole thread Raw
In response to COPY command file name encoding issue (UTF8/WIN1252)  (Pujol Mathieu <mathieu.pujol@realfusio.com>)
Responses Re: COPY command file name encoding issue (UTF8/WIN1252)  (Pujol Mathieu <mathieu.pujol@realfusio.com>)
List pgsql-general
Pujol Mathieu wrote:
> I have a problem using COPY command with a file name containing non
> ASCII characters.
> I use Postgres 9.3.5 x64 on a Windows 7.
> OS local encoding is WIN1252.
> My database is encoded in UTF8.
> I initiate client connection with libpq, connection encoding is set to UTF8.
> I build properly my file path taking care of encoding.
> 
> When I run COPY "test" TO 'C:/tmp/é.bin' WITH BINARY
> it creates a file named é.bin which is utf8 name interpreted as local8.
> It could be reproduced convert_from(convert_to('é','UTF8'),'WIN1252').
> é in UTF8 "\303\251"
> é in WIN1252"\351"
> 
> This command works on a database encoded in WIN1252 (same as OS) .
> So it seems that COPY command don't take care of file name encoding.
> Is it a bug ? a limitation ?
> Thanks for your help

I didn't look at the code, but I'd say that the database encoding is
used for the file name, which is why it works when database encoding
and OS locale are the same.

I guess that it would be possible for PostgreSQL to figure out with what
OS locale the postmaster is running and to convert file names accordingly,
but it's probably not trivial since it is OS dependent.

Yours,
Laurenz Albe

pgsql-general by date:

Previous
From: Pujol Mathieu
Date:
Subject: COPY command file name encoding issue (UTF8/WIN1252)
Next
From: Pujol Mathieu
Date:
Subject: Re: COPY command file name encoding issue (UTF8/WIN1252)