Thread: BUG #6452: psql: can't change client encoding from the command line

BUG #6452: psql: can't change client encoding from the command line

From
felix.gerzaguet@gmail.com
Date:
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

Re: BUG #6452: psql: can't change client encoding from the command line

From
Heikki Linnakangas
Date:
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

Re: BUG #6452: psql: can't change client encoding from the command line

From
Félix GERZAGUET
Date:
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