Postgresql - PSQL 编码问题

标签 postgresql encoding psql

我正在尝试为 session 设置客户端编码。我在 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

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

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

SET client_encoding to 'LATIN1'

show client_encoding

服务器编码设置为UTF8。

最佳答案

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

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

因此,如果您希望客户端编码持续存在,请尝试设置此环境变量。

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

关于Postgresql - PSQL 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48085724/

相关文章:

sql - 将多个 upsert 语句的结果捕获到 Postgresql 的一个输出中

encoding - 是否存在可发音的编码?

express - webpack gzip 与 Express gzip

jenkins - 中止时如何使用 SIGINT 而不是 SIGTERM 终止 Jenkins 作业中的 psql 进程?

scala - Doobie for Scala/Play 框架中的事务

postgresql - 如何在 kubernetes 中组织具有不可复制容器的 pod?

ruby-on-rails - 为什么这两个查询以不同的顺序检索记录?

sql - 如果列的值匹配,则删除与特定 ID 对应的所有行

algorithm - 数据到音频并返回。使用源代码进行调制/解调

postgresql - 如何从 psql 提示符将双引号更改为单引号