温馨提示×

linux pgadmin为何乱码

小樊
49
2026-09-09 11:44:52
栏目: 智能运维

在 Linux 下使用 pgAdmin(特别是 pgAdmin 4)出现乱码,通常不是数据库本身的问题,而是环境编码 / 字体 / 区域设置导致的。下面是常见原因和解决办法,按出现频率排序。


一、最常见原因:系统 Locale 不是 UTF-8

pgAdmin 依赖系统的 locale 来显示中文。

检查当前 locale

locale

如果看到:

LANG=C
LC_ALL=

或者不是 zh_CN.UTF-8 / en_US.UTF-8,就容易乱码。

解决方式(以 Ubuntu / Debian 为例)

sudo apt install locales
sudo dpkg-reconfigure locales

勾选:

zh_CN.UTF-8
en_US.UTF-8

然后设为默认。

或临时生效:

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

二、pgAdmin 4 浏览器界面乱码(Web 模式)

pgAdmin 4 默认是 Web 应用(本地浏览器打开)。

可能原因

  • 系统缺少中文字体
  • 浏览器编码被强制修改

解决

  1. 安装中文字体
sudo apt install fonts-noto-cjk
# 或
sudo apt install fonts-wqy-zenhei
  1. 重启 pgAdmin
pgadmin4
  1. 浏览器访问:
http://127.0.0.1:5050

不要手动改浏览器编码(保持 UTF-8)


三、数据库本身不是 UTF-8(重要)

即使界面正常,查询结果显示乱码,可能是数据库编码问题。

查看数据库编码

SELECT datname, pg_encoding_to_char(encoding)
FROM pg_database;

如果不是 UTF8:

SQL_ASCII
LATIN1

解决

新建数据库时指定:

CREATE DATABASE test
  WITH ENCODING='UTF8'
       LC_COLLATE='zh_CN.UTF-8'
       LC_CTYPE='zh_CN.UTF-8';

⚠️ 已存在的数据库不能修改编码,只能重建。


四、客户端连接编码设置错误

pgAdmin 中:

  1. 右键服务器 → Properties
  2. 找到 Connection
  3. 确保:
Client Encoding: UTF8

五、桌面版 pgAdmin(旧版 pgAdmin III)

如果你是 pgAdmin III(已废弃):

  • 需要系统 GTK 支持中文
  • 安装:
sudo apt install gtk2-engines-pixbuf

六、快速自检清单 ✅

  • [ ] locale 是 UTF-8
  • [ ] 安装了中文字体
  • [ ] 数据库编码是 UTF8
  • [ ] pgAdmin 客户端编码是 UTF8
  • [ ] 使用 pgAdmin 4(不推荐 pgAdmin III)

如果你愿意,可以告诉我:

  • 用的是 pgAdmin 3 还是 4
  • 是 界面乱码 还是 查询数据乱码
  • Linux 发行版(Ubuntu / CentOS / Arch)

我可以给你更精确的解决方案。

0 踩