乱码的根本原因之一是系统未使用UTF-8编码。需通过以下命令配置系统语言环境:
locale(确认LANG变量是否为zh_CN.UTF-8或en_US.UTF-8)。sudo vi /etc/locale.conf,添加或修改为LANG=zh_CN.UTF-8(推荐中文环境)或LANG=en_US.UTF-8(英文环境)。sudo localedef -i zh_CN -f UTF-8 zh_CN.UTF-8。/etc/profile或/etc/sysconfig/i18n,添加export LANG=zh_CN.UTF-8,保存后运行source /etc/profile使配置生效。pgAdmin界面乱码常因缺少中文字体导致。需安装常用中文字体包:
sudo yum install -y fonts-chinese.noarch wqy-zenhei wqy-microhei(fonts-chinese包含基础中文字体,wqy系列为文泉驿字体,支持更多中文场景)。Tools -> Options -> Appearance -> Font选择中文字体(如Noto Sans CJK SC、WenQuanYi Zen Hei),应用后重启pgAdmin。pgAdmin的字符编码需与数据库编码匹配,否则查询结果会乱码:
~/.pgadmin/pgadmin.conf(用户级配置),添加[pgAdmin] encoding = UTF-8,保存后重启pgAdmin。Properties -> Connection标签,将Encoding下拉框选择为UTF-8,点击OK并重新连接数据库。若数据库本身未使用UTF-8编码,即使前端设置正确仍会出现乱码。需确认数据库字符集:
\l查看数据库列表,确认Encoding列是否为UTF8。ALTER DATABASE your_database_name SET client_encoding TO 'UTF8';
ALTER DATABASE your_database_name SET default_transaction_isolation TO 'read committed';
ALTER DATABASE your_database_name SET timezone TO 'UTC';
(注:修改数据库编码可能影响现有数据,建议备份后操作。)若通过终端使用pgAdmin,需确保终端编码与系统一致:
echo $LANG,确认输出为zh_CN.UTF-8或en_US.UTF-8。~/.bashrc文件,添加export LANG=zh_CN.UTF-8和export LC_ALL=zh_CN.UTF-8,运行source ~/.bashrc使配置生效。完成上述步骤后,pgAdmin的界面及查询结果乱码问题通常可解决。若仍存在问题,建议检查pgAdmin版本是否为最新(旧版本可能存在编码兼容性问题),或参考pgAdmin官方文档获取进一步支持。