Postgresql - PSQL 编码问题
Postgresql - PSQL encoding issue
我正在尝试为会话设置客户端编码。我正在 运行 在 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。
设置客户端编码仅适用于当前会话,除非您设置环境变量 PGCLIENTENCODING。
来自 postgresql 文档:如果在客户端环境中定义了环境变量 PGCLIENTENCODING,则在与服务器建立连接时会自动选择该客户端编码。
因此,如果您希望客户端编码持续存在,请尝试设置此环境变量。
或者如果您想在一个会话中执行多个查询,请查看 -f 参数以设置要解析的文件。
例如:psql -d myDataBase -f myFile
我正在尝试为会话设置客户端编码。我正在 运行 在 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。
设置客户端编码仅适用于当前会话,除非您设置环境变量 PGCLIENTENCODING。
来自 postgresql 文档:如果在客户端环境中定义了环境变量 PGCLIENTENCODING,则在与服务器建立连接时会自动选择该客户端编码。
因此,如果您希望客户端编码持续存在,请尝试设置此环境变量。
或者如果您想在一个会话中执行多个查询,请查看 -f 参数以设置要解析的文件。
例如:psql -d myDataBase -f myFile