尽管 LC_Messages 被设置为 en_GB.UTF-8,但 Postgres 的中文消息

Postgres messages in Chinese despite LC_Messages being set to en_GB.UTF-8

使用 Windows PostgreSQL 终端连接到同一个数据库,我们在两台不同的机器(一台中文,一台英文)上得到不同语言的响应。我无法弄清楚这两台机器的设置有什么不同来修复它。特别值得注意的是,几个问题(here and )似乎表明 LC_MESSAGES 设置是需要更改的,除了两台机器都设置为 en_GB.UTF-8.

机器 1:

show LC_MESSAGES;

 lc_messages 
-------------
 en_GB.UTF-8
(1 row)

机器 2:

show LC_MESSAGES;

lc_messages 
-------------
en_GB.UTF-8
(1 行记录)

在决定从 Postgres 返回什么语言消息时显然还涉及其他因素,但我一直无法弄清楚是什么。


更新:虽然 Lauenz Albe 的回答解释了为什么我到目前为止尝试的失败,但我仍然无法找到任何文档或建议来处理 PSQL 中的语言是如何设置的,或者如何修复它.

lc_messages 确定来自服务器的消息的语言

你看到的(1 行记录)psql写的,是由psql的locale环境决定的。

要更改此设置,您必须更改 Windows 会话的语言环境。不知道这是怎么做到的。

设置LANG环境变量,示例批处理文件:

@echo off
set PGDATABASE=my_database
set PGUSER=my_user
set PGPASSWORD=my_password
set LANG=C
psql -f %1