Liunx系统的ECS实例中文字显示乱码怎么办?
本文介绍在Liunx系统的ECS实例中,文字显示乱码的解决方案。
问题现象
通过第三方SSH客户端远程连接Linux系统的阿里云Linux系统的ECS实例时,发现中文字体显示乱码。

问题原因
造成该问题的可能原因如下:
Liunx系统未安装中文字体:Liunx系统语言默认不支持中文显示,需要单独安装中文语言包使系统支持中文显示,请参考方案一:在Linux系统中安装中文语言包进行修复。
第三方SSH客户端工具字符集设置问题,请参考方案二:修改第三方SSH客户端工具字符集设置进行修复。
解决方案
根据实际情况,选择对应方案进行操作。
方案一:在Linux系统的ECS实例中安装中文语言包
下列操作以CentOS 7.8操作系统为例,其它版本的CentOS系统或者其他发行版本(如Redhat、Debian、Ubuntu等)对应的配置和命令行请参阅相应的官方文档。
CentOS 6与CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 6/8的源地址内容已移除。当您在CentOS 6/8系统内继续使用默认配置的源地址时会发生报错。建议您先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?和CentOS 8 EOL如何切换源?。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
执行以下命令,查询当前系统使用的语言。
echo $LANG
说明如果为英文,请继续执行步骤3。
如果为中文,说明该Linux系统的ECS实例已安装中文语言包,排除因Liunx系统未安装中文字体导致文字显示乱码的原因,请参考方案二:修改第三方SSH客户端工具字符集设置继续执行操作。
执行以下命令,查看当前系统是否安装中文语言包。
locale -a | grep "zh_CN"
系统显示类似如下,zh表示中文,CN表示中国,gb18030、gb2312、gbk、utf8为字符集。
zh_CN zh_CN.gb18030 zh_CN.gb2312 zh_CN.gbk zh_CN.utf8
若未安装中文语言包,请执行以下命令安装。
sudo yum groupinstall "fonts"
执行以下命令,编辑
/etc/locale.conf
配置文件。vim /etc/locale.conf
按
i
键切换至编辑模式,将LANG=en_US.UTF-8
修改为LANG=zh_CN.UTF-8
,将当前系统语言修改为中文。修改完成后,按下
Esc
键后,输入:wq
并回车,保存并关闭配置文件。
执行以下命令,使配置生效。
source /etc/locale.conf
执行以下命令,重启服务器。
reboot
(可选)若重启服务器后,当前系统语言仍显示为英文,请执行以下命令,编辑
/etc/profile.d/lang.sh
配置文件。vim /etc/profile.d/lang.sh
按
i
键切换至编辑模式,将zh*) LANG=en_US.UTF-8
修改为zh*) LANG=zh_CN.UTF-8
,修改之后的内容如下图所示。修改完成后,按下
Esc
键后,输入:wq
并回车,保存并关闭配置文件。执行以下命令,重启服务器。
reboot
方案二:修改第三方SSH客户端工具字符集设置
以下操作以Xshell客户端为例,介绍如何修改Xshell客户端工具字符集设置。
打开Xshell客户端。
在Xshell客户端页面,将默认语言设置为Unicode (UTF-8)。
重新登录实例,若不再出现以上错误,则表示问题已修复。