解决方案
目前使用阿里云的ECS服务器,发现有中文乱码问题。按照官网提供的[文档](https://help.aliyun.com/knowledge_detail/6704318.html?pos=1#ECS Linux 服务器中文乱码如何解决?),采取以下方法解决:
查看locale,确认已安装中文包。否则执行
yum groupinstall chinese-support
。$ locale -a |grep zh_CN
查看系统语言
echo $LANG
并设置为中文zh_CN.UTF-8
。$ echo $LANG
en_US.UTF-8
$ vi /etc/sysconfig/i18n
#将LANG=“…” 改为 LANG=“zh_CN.UTF-8”重启系统
reboot
。修改SSH终端。例如我使用的是XShell, 打开“文件”(File)- “属性” (Properties), 在“终端”(Terminal),将“编码”(Encoding)改为UTF-8 即可。
坑
执行第三步重启后,机器再也无法远程连接上。在阿里云网页上的管理页面,将该机器“启动”,启动后很快会自动停止。后来只好提交“工单”,让阿里售后处理。原来是因为“ECS 执行yum update后会默认更新内核,重启会从新内核启动而导致启动失败”。[解决办法](https://help.aliyun.com/knowledge_detail/13056129.html#ECS centos6.5怎么修改内核启动顺序)也在其官网上。太坑了。
我之前设置了前3步,始终乱码。后来发现确实是XShell未设置。但是针对每个SSH连接都需要设置一遍UTF-8编码才可以。XShell默认使用机器操作系统的编码,我是中文Windows,默认编码应是GBK。
最后
按照以上步骤设置好中文后。查看中文文件,输入中文都没有问题。若有编辑中文文件内容仍是乱码,那是因为该文件不是以“UTF-8”编码的,修改编码即可。
另外一篇非常好的关于中文乱码问题的总结也非常好,在此。