英文纯净版的Linux中不存在乱码问题,但是我们在学习和工作中,总会遇到需要显示或者输入中文的情形,一旦当我们尝试显示中文或者输入中文时,显示的是一堆乱码,那就比较烦躁了。本文就针对中文乱码问题,深入分析其原因,知其因,那么解决方法也就显而易见了。
本文以Readhat Linux为例:
首先,我们可以使用Linux命令:locale -a
可以查看系统支持的语系,如下:
[root@promote ~]# locale -a
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
...
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_CN.big5
其中列举了一目前常用的中文编码。
在Linux配置文件/etc/sysconfig/i18n
中,设定了系统的默认语系,例如:
[root@promote ~]# cat /etc/sysconfig/i18n
LANG="en_US"
SYSFONT="latarcyrheb-sun16"
其次,我们通过Linux命令:locale
可以查看当前系统的设定的语系,例如:
[root@promote ~]# locale
LANG=en_US
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
...
其中前两项分别为主语言环境和字符辨识编码,通常我们只需要在设定这两项就够了,下面的都会根据主语言环境进行的设定。
那么最后,怎样能够在用户环境中实现中文正常显示的要求呢。很简单,只需要在文件~/.bash_profile
添加一句 :
export LANG=zh_CN.UTF-8
重启系统后,在系统终端显示中文了,如果再使用Xshell或者putty的时候,设置相应的编码(例如UTF-8)就可以正常显示中文啦。