Postgresql - PSQL编码问题

时间:2018-01-03 21:56:49

标签: postgresql encoding psql

我正在尝试为会话设置客户端编码。我在linux终端上运行以下命令(postgresql安装在远程服务器上。

psql -h localhost -p 5432 -U user -d dbase -c "SET client_encoding to 'LATIN1';"

输出:SET

psql -h localhost -p 5432 -U user -d dbase -c "show client_encoding"

输出:UTF8

为什么会这样?我是否需要以超级用户身份运行此命令? (我不这么认为)

如果我在Pgadmin4上运行以下命令,则它会正确显示LATIN1作为输出。

SET client_encoding to 'LATIN1'

show client_encoding

服务器编码设置为UTF8。

1 个答案:

答案 0 :(得分:1)

除非您设置环境变量PGCLIENTENCODING,否则设置客户端编码仅适用于当前会话。

从postgresql文档:如果在客户端环境中定义了环境变量PGCLIENTENCODING,则在与服务器建立连接时会自动选择该客户端编码。

因此,如果您希望客户端编码保持不变,请尝试设置此环境var。

或者,如果您只想在一个会话中执行多个查询,请查看 -f 参数以设置要解析的文件。 例如:psql -d myDataBase -f myFile