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