银河麒麟v10进程管理器中文乱码的根本原因是locale未设为zh_cn.utf-8,需先验证locale,再强制刷新字体缓存、注销重登录,最后通过修改/etc/default/locale并重启系统永久修复。

银河麒麟V10的进程管理器(System Monitor)界面中,进程名、用户、命令等中文字段显示为方块、问号或空白字符,说明其GUI组件未能正确加载中文字体或系统locale未被图形会话完整继承。
确认进程管理器是否继承了正确的locale
打开终端,执行:ps aux | grep system-monitor,找到进程管理器启动命令;若其以system-monitor或gnome-system-monitor直接启动,说明它由桌面环境自动拉起,此时它依赖LightDM/GNOME Shell传递的locale变量。
运行locale命令,检查输出中LANG和LC_ALL是否均为zh_CN.UTF-8。若其中任一为POSIX、C或zh_CN.GBK,则进程管理器将无法渲染中文——因为GTK 3+应用强制要求UTF-8编码环境,GBK会被静默忽略。
这一步必须先验证,否则后续所有字体操作都无效。
强制刷新字体缓存并重启图形会话
以普通用户身份打开终端。
执行fc-cache -f -v,等待输出末尾出现Finished building fonts cache.提示。
点击右上角用户头像 → 选择“注销”,然后重新登录。不要仅关闭再打开新窗口,旧GNOME Shell进程仍持有损坏的字体索引。
【注意:若未执行此步就修改/etc/default/locale,进程管理器仍会乱码】
永久修复系统locale配置
第一步:执行sudo nano /etc/default/locale。
第二步:将文件内容严格替换为以下两行(不可加#注释,不可多空格,不可用双引号):
LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8
第三步:保存退出后,立即执行sudo locale-gen zh_CN.UTF-8 && sudo update-locale。这一步生成glibc语言数据,缺省会导致GNOME组件fallback到C locale。
第四步:执行sudo reboot。仅注销无法让LightDM、dbus-session、GTK模块重新读取LC_ALL,必须重启才能确保system-monitor从启动那一刻就拿到正确环境。
手动指定进程管理器启动时的locale(临时绕过)
方法一:在终端中直接运行带环境变量的命令LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 gnome-system-monitor
方法二:创建桌面快捷方式覆盖环境
执行cp /usr/share/applications/gnome-system-monitor.desktop ~/.local/share/applications/ → 编辑该副本,在Exec=行开头插入env LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 ,保存后右键“允许启动”即可。
这一步适合尚未重启但急需查看进程的场景,但不解决根本问题。











