在 Ubuntu 上使用 pgAdmin 出现乱码,通常不是 PostgreSQL 本身的问题,而是**客户端环境(字体、编码、区域设置)**的问题。下面按常见原因和解决办法来说明。
pgAdmin 默认使用 UTF-8,如果系统 locale 不是 UTF-8,就容易出现中文乱码。
locale
如果看到类似:
LANG=C
LC_CTYPE=C
或不是 UTF-8 结尾,就会出问题。
sudo apt install locales
sudo dpkg-reconfigure locales
选择:
en_US.UTF-8
# 或
zh_CN.UTF-8
然后:
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
重启 pgAdmin。
即使编码正确,字体不对也会“看起来像乱码”。
Noto Sans CJK SCWenQuanYi Zen HeiDejaVu Sans如果系统没有中文字体:
sudo apt install fonts-noto-cjk
确认数据库是 UTF-8:
SHOW server_encoding;
SHOW client_encoding;
如果不是 UTF-8:
SET client_encoding = 'UTF8';
建库时推荐:
CREATE DATABASE dbname
WITH ENCODING='UTF8'
LC_COLLATE='zh_CN.UTF-8'
LC_CTYPE='zh_CN.UTF-8';
升级方式:
sudo apt update
sudo apt install pgadmin4
或通过官方 apt 源安装。
如果你用的是 Ubuntu 22.04+ 的 Wayland:
echo $XDG_SESSION_TYPE
可尝试:
GDK_BACKEND=x11 pgadmin4
locale 是 UTF-8如果你愿意,可以告诉我:
我可以更精准地帮你定位。