Обсуждение: BUG #6452: psql: can't change client encoding from the command line
BUG #6452: psql: can't change client encoding from the command line
От
felix.gerzaguet@gmail.com
Дата:
The following bug has been logged on the website:
Bug reference: 6452
Logged by: F=C3=A9lix
Email address: felix.gerzaguet@gmail.com
PostgreSQL version: 9.1.2
Operating system: Win XP Pro SP3
Description:=20=20=20=20=20=20=20=20
Hi,
here is the problem:
Using the command line, I can't change the client encoding, but I can change
it using the "\encoding" command :
C:\>psql --variable=3DENCODING=3DUTF8
could not find a "psql" to execute
could not find a "psql" to execute
psql (9.1.2)
WARNING: Console code page (850) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
postgres=3D# \encoding
WIN1252
postgres=3D# \echo :ENCODING
WIN1252
postgres=3D# \encoding UTF8
postgres=3D# \encoding
UTF8
postgres=3D# \echo :ENCODING
UTF8
postgres=3D# \q
On 11.02.2012 20:02, felix.gerzaguet@gmail.com wrote: > Using the command line, I can't change the client encoding, but I can change > it using the "\encoding" command : > > C:\>psql --variable=ENCODING=UTF8 > could not find a "psql" to execute > could not find a "psql" to execute > psql (9.1.2) > WARNING: Console code page (850) differs from Windows code page (1252) > 8-bit characters might not work correctly. See psql reference > page "Notes for Windows users" for details. > Type "help" for help. > > postgres=# \encoding > WIN1252 > postgres=# \echo :ENCODING > WIN1252 > postgres=# \encoding UTF8 > postgres=# \encoding > UTF8 > postgres=# \echo :ENCODING > UTF8 > postgres=# \q Yeah, "\set ENCODING UTF8" doesn't seem to work either. The "ENCODING" psql variable tracks changes to the server's client_encoding setting, but not vice versa. That probably should be fixed, or at least it should throw an error telling the user to use \encoding instead. As a workaround, you can set the PGCLIENTENCODING environment variable before launching psql. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
Thanks for the workaround. I'll use it untill the bug is fixed :-)
--
--
Félix
On Tue, Feb 14, 2012 at 1:41 PM, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote:
On 11.02.2012 20:02, felix.gerzaguet@gmail.com wrote:Using the command line, I can't change the client encoding, but I can change
it using the "\encoding" command :
C:\>psql --variable=ENCODING=UTF8
could not find a "psql" to execute
could not find a "psql" to execute
psql (9.1.2)
WARNING: Console code page (850) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
postgres=# \encoding
WIN1252
postgres=# \echo :ENCODING
WIN1252
postgres=# \encoding UTF8
postgres=# \encoding
UTF8
postgres=# \echo :ENCODING
UTF8
postgres=# \q
Yeah, "\set ENCODING UTF8" doesn't seem to work either. The "ENCODING" psql variable tracks changes to the server's client_encoding setting, but not vice versa. That probably should be fixed, or at least it should throw an error telling the user to use \encoding instead.
As a workaround, you can set the PGCLIENTENCODING environment variable before launching psql.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com