这篇博客主要说明出现问题的原因和解决思路。
一、修改系统编码为utf-8
1、查看当前编码
一般使用locale
或者 echo $LANG
命令,效果如下:
schillerxu$ locale
LANG="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_ALL=
2、配置编码
可以修改/etc/profile
全局配置文件,也可以修改~/.bash_profile
当前用户的配置文件,在文件中添加以下内容即可:
export LC_ALL="zh_CN.UTF-8"
export LANG="zh_CN.UTF-8"
然后source /etc/profile
或者source ~/.bash_profile
让配置文件生效。
二、出现问题的可能原因
1、服务器没有安装zh_CN.UTF-8 字符集
安装对应的软件包就可以,可以参考这篇博客服务器utf-8乱码_Ubuntu Zh_CN_UTF8 设置
当然,为了避免出现这个问题,你也可以先用locale -a命令查看下本机支持的字符集,效果如下:
$ locale -a|grep zh
zh_CN.UTF-8
zh_HK
zh_TW
zh_CN.GB2312
zh_CN.GBK
zh_CN.GB18030
zh_CN
zh_TW.Big5
zh_TW.UTF-8
zh_CN.eucCN
zh_HK.UTF-8
zh_HK.Big5HKSCS
2、远程登录软件字符设置
一般都是用SecureCRT或者Xshell等软件登录远程服务器,所以登录软件的字符设置也会影响显示效果,有可能造成中文乱码。
这里只提供一个可能的思路,操作自行查询即可。