帮同窗处理Linux下面中文显示乱码的问题,顺便把过程记录下来。这个是个国内Linux用户烦恼的问题,因为大部分的Linux发行版都是以英语为主体的,并且英文在通用性和稳定性上都比中文要好一些,各类奇怪的BUG也要少一点。因此,虽然在解决中文乱码问题,可是仍是强烈建议使用英文的系统。linux
咱们知道咱们的操做系统是无所谓中文版和英文版的,不管是windows仍是Linux,系统发行的时候全世界都是同样的内核,系统呈现给咱们是英文仍是中文,彻底取决于你选择的语言包。不一样国家的人在安装使用的时候选择属于本身国家的语言包,应用程序中的语言也不是写死的,它根据系统的设置来调用相关的语言,因此,一个应用程序写出来不通过修改,全世界不一样国家的用户均可以以母语界面使用它,这就是所谓的internationalization(国际化),简称 i18n。这也是将来软件的发展趋势。 shell
那么,若是我在系统中安装了不一样的语言包和不一样的字体,系统是如何判断我所要的语言界面并调用相关的字体的呢? 系统中那些文件和变量在控制这些呢?
windows
可使用locale命令,查看当前系统默认采用的字符集bash
# locale
在redHat/CentOS系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,若是默认安装的是中文的系统,i18n的内容以下:
ide
LANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
其中LANG变量是language的简称,稍微有英语基础的用户一看就看出来这个变量是决定系统的默认语言的,即系统的菜单、程序的工具栏语言、输入法默认语言等。工具
SYSFONT是system font的简称,决定系统默认用哪种字体。字体
SUPPORTED变量决定系统支持的语言,即系统可以显示的语言。编码
须要说明的是,因为计算机起源于英语国家,所以,无论你把这些变量设置成什么,英语老是默认支持的,并且无论用什么字体,英文字体总包含在其中。 spa
那么如何显示中文呢?操作系统
一、系统必须安装中文语言包才行(中文字体)
# yum -y groupinstall chinese-support
二、仅仅有语言包还不行,咱们得设置相应的字符集编码
## 临时生效 # export LANG="zh_CN.UTF-8" # 设置为中文 # export LANG="en_US.UTF-8" # 设置为英文,我比较喜欢这样 export LANG=C ## 永久生效, 编辑/etc/sysconfig/i18n(最好reboot一下) LANG="zh_CN.UTF-8" ## 或者编辑 /etc/profile 配置文件,添加以下一行 export LANG="zh_CN.UTF-8" # 从新载入 . /etc/profile ## 查看当前的字符集 echo $LANG
好了,通过上面的设置,在系统自己应该就可以支持中文显示了。
一样,要解决乱码问题,须要保证2两点:
选择支持中文的字体
终端软件的字符编码
常见终端软件设置:
Xshell:
SecureCRT:
把文件从windowss拷贝到到linux,拷贝过去后常常发现中文显示乱码。缘由是Windows中默认的文件格式是 GBK(gb2312),而Linux通常都是UTF-8。比较繁琐的方法是在windows下用程序把内容转换为utf-8编码格式的,可是至关麻烦, 并且遇到一个文件转一回。下面介绍一下,在Linux中如何一劳永逸的解决这个问题,查看文件的编码及如何进行对文件进行编码转换。
为了不这些问题,最好的方式就是统一编码。对于文本文件,都统一保存为UTF8格式,windows下面不要使用word,记事本,推荐Sublime text, 或者 notepad++。