麒麟系统中文显示异常是因默认编码未设为中文字符集,需先用locale和locale -a确认当前编码及可用locale,再按全局utf-8或gb18030方案配置,并执行locale-gen、update-locale、fc-cache -f -v及完整重启。

麒麟系统中文显示为方块、问号、终端输出乱码、WPS菜单错位或登录界面文字缺失,说明系统默认编码未正确设为中文支持的字符集,必须按实际生效范围选择对应修改路径。
确认当前编码状态与可用中文locale
这一步决定你后续能选什么编码,不能跳过。系统没装的编码,强行写进配置会导致TTY无法启动或登录界面崩溃。
打开终端,执行:locale,重点看LANG=这一行值是否为zh_CN.UTF-8;若为en_US.UTF-8、C或为空,说明未生效。
再执行:locale -a | grep -i 'zh_cn\|gb',检查输出中是否有zh_CN.UTF-8、zh_CN.GB18030等。若无任何输出,说明中文语言包未安装,需先补全。
永久设置全局默认编码(推荐UTF-8)
适用于登录界面、TTY、桌面环境、WPS、LibreOffice等全部中文显示场景,是最常用也最稳妥的方案。
第一步:用管理员权限编辑系统 locale 配置文件:sudo nano /etc/default/locale
第二步:将文件内容严格改为以下两行(【不可有空格、不可加引号、不可注释】):
LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8
第三步:执行命令生成并激活新 locale:sudo locale-gen zh_CN.UTF-8 && sudo update-locale
第四步:重启系统。仅注销重登录无法让 TTY、GRUB、登录屏生效,必须完整重启。
启用GB18030编码(兼容老旧政务/工业软件)
某些国产数据库客户端、税务系统或旧版PLC配置工具强制依赖GB18030,设为UTF-8反而报错或空白。此方法需前置验证系统已支持该locale,否则可能黑屏。
方法一:交互式启用(安全,可回退)
执行:sudo dpkg-reconfigure locales
用方向键移动到zh_CN.GB18030 GB18030,按空格选中 → Tab 切换到“确定” → 回车 → 再次用方向键选中zh_CN.GB18030 → 回车确认为默认。
方法二:手动配置(需前置验证)
确认locale -a | grep zh_CN.GB18030有输出后,执行:sudo localectl set-locale LANG=zh_CN.GB18030,该命令自动写入/etc/locale.conf并触发重载。
刷新字体缓存确保渲染生效
即使locale已设为zh_CN.UTF-8,若字体索引损坏,WPS、LibreOffice、桌面图标仍会显示方块或空白。
以普通用户身份打开终端,执行:fc-cache -f -v(注意参数为小写f和v,中间无空格)。
等待命令输出完成,末尾出现Finished building fonts cache.提示。
立即注销并重新登录图形会话:点击右上角用户头像 → 选择“注销”,输入密码重新登录。











