Win11下PostgreSQL v15重音字符乱码及UTF8适配问题求助
解决Win11 + PostgreSQL 15 UTF-8环境下重音字符INSERT问题
1. 确认数据库及服务器编码
首先确保PostgreSQL数据库、服务器的编码均为UTF-8:
- 登录数据库执行以下命令检查:
所有结果需为SHOW server_encoding; SHOW client_encoding; SHOW database_encoding;UTF8,若有不符,建议备份数据后重建UTF-8编码的数据库(直接修改现有数据库编码风险较高)。
2. 强制PostgreSQL客户端使用UTF-8
无需依赖WIN1252,直接配置客户端编码:
- 永久生效:找到PostgreSQL安装目录下的
postgresql.conf,修改或添加参数:
保存后重启client_encoding = 'UTF8'postgresql-x64-15服务(可通过Win11「服务」面板操作)。 - 临时验证:终端连接数据库后执行
SET client_encoding = 'UTF8';,再测试INSERT语句。
3. 同步Win11终端与UTF-8编码
启用Beta UTF-8后,需确保终端编码与数据库一致:
- CMD:打开后执行
chcp 65001(切换至UTF-8代码页)。 - PowerShell:执行以下命令设置输入输出编码为UTF-8:
若需永久生效,可将上述命令添加到PowerShell配置文件(执行[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 [Console]::InputEncoding = [System.Text.Encoding]::UTF8notepad $PROFILE编辑,无文件则创建)。
4. 确保输入字符为UTF-8编码
- 避免从ANSI编码文件复制重音字符,建议用UTF-8无BOM编码的编辑器(如VS Code、Notepad++)编写INSERT语句后再执行。
- 直接在终端输入时,确认输入法适配UTF-8(Win11启用Beta UTF-8后默认输入法会自动适配)。
5. 检查图形化工具编码(如pgAdmin)
若使用pgAdmin,进入「File」>「Preferences」>「SQL Editor」,将「Encoding」设置为UTF8。
内容的提问来源于stack exchange,提问作者Yannize
相关产品推荐
相关产品推荐

