BUG #19410: Cannot ser client_encoding
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=#
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.
"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