Обсуждение: 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