Re: UTF8 with BOM support in psql - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: UTF8 with BOM support in psql
Date
Msg-id 1258195607.14314.20.camel@vanquo.pezone.net
Whole thread Raw
In response to Re: UTF8 with BOM support in psql  (Itagaki Takahiro <itagaki.takahiro@oss.ntt.co.jp>)
Responses Re: UTF8 with BOM support in psql
Re: UTF8 with BOM support in psql
List pgsql-hackers
On ons, 2009-10-21 at 13:11 +0900, Itagaki Takahiro wrote:
> Client encoding is declared in body of a file, but BOM is
> in head of the file. So, we should always ignore BOM sequence
> at the file head no matter what client encoding is used.
> 
> The attached patch replace BOM with while spaces, but it does not
> change client encoding automatically. I think we can always ignore
> client encoding at the replacement because SQL command cannot start
> with BOM sequence. If we don't ignore the sequence, execution of
> the script must fail with syntax error.

I don't know what the best solution is here.  The BOM encoded as UTF-8
is valid data in other encodings.  Of course, there is your point that
such data cannot be at the start of an SQL command.

There is also the notion of how files are handled on Unix.  Normally,
you'd assume that all of

psql -f file.sql
psql < file.sql
cat file.sql | psql
cat file1.sql file2.sql | psql

behave consistently.  That would require that the BOM is ignored in the
middle of the data stream (which is legal and required per Unicode
standard) and that this only happens if the character set is actually
Unicode.

Any ideas?



pgsql-hackers by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: Patch committers
Next
From: Robert Haas
Date:
Subject: Re: Patch committers