文档

Liunx系统的ECS实例中文字显示乱码怎么办?

更新时间:

本文介绍在Liunx系统的ECS实例中,文字显示乱码的解决方案。

问题现象

通过第三方SSH客户端远程连接Linux系统的阿里云Linux系统的ECS实例时,发现中文字体显示乱码。

问题原因

造成该问题的可能原因如下:

解决方案

根据实际情况,选择对应方案进行操作。

方案一:在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如何切换源?

  1. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Windows实例

  2. 执行以下命令,查询当前系统使用的语言。

    echo $LANG
    说明
  3. 执行以下命令,查看当前系统是否安装中文语言包。

    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"
  4. 执行以下命令,编辑/etc/locale.conf配置文件。

    vim /etc/locale.conf
    1. i键切换至编辑模式,将LANG=en_US.UTF-8修改为LANG=zh_CN.UTF-8,将当前系统语言修改为中文。

    2. 修改完成后,按下Esc键后,输入:wq并回车,保存并关闭配置文件。

  5. 执行以下命令,使配置生效。

    source /etc/locale.conf
  6. 执行以下命令,重启服务器。

    reboot
  7. (可选)若重启服务器后,当前系统语言仍显示为英文,请执行以下命令,编辑/etc/profile.d/lang.sh配置文件。

    vim /etc/profile.d/lang.sh
    1. i键切换至编辑模式,将zh*) LANG=en_US.UTF-8修改为zh*) LANG=zh_CN.UTF-8,修改之后的内容如下图所示。Dingtalk_20210709104253.jpg

    2. 修改完成后,按下Esc键后,输入:wq并回车,保存并关闭配置文件。

    3. 执行以下命令,重启服务器。

      reboot

方案二:修改第三方SSH客户端工具字符集设置

以下操作以Xshell客户端为例,介绍如何修改Xshell客户端工具字符集设置。

  1. 打开Xshell客户端。

  2. 在Xshell客户端页面,将默认语言设置为Unicode (UTF-8)

  3. 重新登录实例,若不再出现以上错误,则表示问题已修复。