在 Linux 上使用 pgAdmin 出现乱码,通常是字符编码、系统语言环境(locale)或字体的问题。下面按常见原因逐个说明,并给出解决办法。
pgAdmin(尤其是 pgAdmin 4)依赖系统的 locale 设置,如果 locale 不是 UTF-8,很容易出现中文乱码。
locale
如果看到类似:
LANG=C
LC_CTYPE="POSIX"
就可能导致乱码。
例如(以中文为例):
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8
或英文系统也建议:
LANG=en_US.UTF-8
修改后 注销或重启,再打开 pgAdmin。
有些 Linux 发行版默认字体不含中文字形,pgAdmin 用的是系统字体。
# Debian / Ubuntu
sudo apt install fonts-noto-cjk
# CentOS / Rocky / Alma
sudo yum install google-noto-sans-cjk-fonts
即使界面正常,查询结果显示乱码,通常是数据库编码问题。
SELECT datname, pg_encoding_to_char(encoding)
FROM pg_database;
UTF8UTF8查看客户端编码:
SHOW client_encoding;
如果不是 UTF8:
SET client_encoding = 'UTF8';
pgAdmin 4 默认用 本地浏览器 打开。
如果浏览器语言或编码设置异常,也会乱码。
GBKpgAdmin 3 在 Linux 上乱码更常见,原因是:
✅ 强烈建议迁移到 pgAdmin 4
locale 是 *.UTF-8如果你愿意,可以告诉我:
我可以给你更精确的命令。