首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法将client_encoding设置为“UTF8”永久?

有没有办法将client_encoding设置为“UTF8”永久?
EN

Stack Overflow用户
提问于 2020-06-01 07:28:01
回答 1查看 2K关注 0票数 0

我使用命令从控制台连接到数据库:

代码语言:javascript
运行
复制
psql -U postgres task_db

并进行了以下选择查询:

代码语言:javascript
运行
复制
select * from common.task;

我收到了这个错误:

代码语言:javascript
运行
复制
ERROR:  character with byte sequence 0xe5 0xb0 0x8f in encoding "UTF8" has no equivalent in encoding "WIN1252"

然后按照这个答案中的命令来修复这个问题:https://stackoverflow.com/a/38487921/7505731

代码语言:javascript
运行
复制
SET client_encoding TO 'UTF8';

啊,真灵。

Problem:现在,每次从命令行连接到db时,我都必须运行上面的命令。有什么方法可以让这个编码永久化吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-01 07:34:45

您可以尝试在.psqlrc file中设置此命令。

除非通过了

选项,psql尝试从系统范围内的启动文件(psqlrc)以及用户的个人启动文件(~/.psqlrc)中读取和执行命令,在连接到数据库之后,在接受正常命令之前。这些文件可以用来设置客户机和/或服务器,通常使用\set和set命令。

系统范围内的启动文件命名为psqlrc,并在安装的“系统配置”目录中查找,该目录通过运行pg_config -sysconfdir最可靠地识别。默认情况下,这个目录将是./etc/相对于包含PostgreSQL可执行文件的目录。可以通过PGSYSCONFDIR环境变量显式设置此目录的名称。

用户的个人启动文件名为.psqlrc,并在调用用户的主目录中查找。在缺少这种概念的Windows上,个人启动文件名为%APPDATA%\postgresql\psqlrc.conf。可以通过PSQLRC环境变量显式地设置用户启动文件的位置。

系统范围内的启动文件和用户的个人启动文件都可以通过在文件名(例如~/..psqlrc 9.2或~/..psqlrc 9.2.5)中添加一个破折号和PostgreSQL主或次要发布号来使psql版本特定于psql。最特定的版本匹配文件将优先于非版本特定的文件.。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62127456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档