BUG #19410: Cannot ser client_encoding

Started by PG Bug reporting form2 months ago3 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 19410
Logged by: Guest-615695028
Email address: 615695028@qq.com
PostgreSQL version: 18.1
Operating system: Microsoft Windows [版本 10.0.26200.7840]
Description:

PS C:\> psql -U postgres
Password for user postgres:

psql (18.1)
Type "help" for help.

postgres=# SHOW client_encoding;
client_encoding
-----------------
GBK
(1 row)

postgres=# SET client_encoding='UTF8';
SET
postgres=# SHOW client_encoding;
client_encoding
-----------------
UTF8
(1 row)

postgres=# \q
PS C:\> psql -U postgres
Password for user postgres:

psql (18.1)
Type "help" for help.

postgres=# SHOW client_encoding;
client_encoding
-----------------
GBK
(1 row)

postgres=#

#2David G. Johnston
david.g.johnston@gmail.com
In reply to: PG Bug reporting form (#1)

On Saturday, February 14, 2026, PG Bug reporting form <
noreply@postgresql.org> wrote:

The following bug has been logged on the website:

Bug reference: 19410
Logged by: Guest-615695028
Email address: 615695028@qq.com
PostgreSQL version: 18.1
Operating system: Microsoft Windows [版本 10.0.26200.7840]
Description:

Everything you’ve shown worked as expected.

If you want to always use UTF-8 I’d suggest you figure out how to configure
your client to do so. psql will then just auto-detect whatever is actually
in use. It doesn’t really make sense to use SET with client_encoding.

David J.

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: David G. Johnston (#2)
Re: BUG #19410: Cannot ser client_encoding

"David G. Johnston" <david.g.johnston@gmail.com> writes:

On Saturday, February 14, 2026, PG Bug reporting form <
noreply@postgresql.org> wrote:

[ SET doesn't persist across sessions ]

Everything you’ve shown worked as expected.

Indeed. I suggest reading

https://www.postgresql.org/docs/current/config-setting.html

which not only explains that the effects of SET are per-session,
but lists all the other ways to adjust a server setting.

If you want to always use UTF-8 I’d suggest you figure out how to configure
your client to do so. psql will then just auto-detect whatever is actually
in use. It doesn’t really make sense to use SET with client_encoding.

Yeah, that's an orthogonal issue: you really need client_encoding to
match whatever your terminal window is using, or non-ASCII characters
won't display correctly. So letting psql deduce it from environment
is usually the right thing.

regards, tom lane