学习笔记7——在CentOS中修改中文字符集

虽然在实际工作环境下,Linux中不建议使用中文,但是如果一定要进行中文显示,尤其对于刚接触linux且英语基础不太好的人来说,那么本文具有一定的参考价值。

本文介绍在linux的shell环境下优化linux中文显示的方法。

首先简单介绍一下字符集的概念:

简单地说,字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、GBK字符集、UTF-8字符集等。

在CentOS 7以前的版本下,默认的字符集的路径一般保存在/etc/sysconfig/i18n文件中。但是在CentOS 7版本中,字符集配置文件位于/etc/locale.conf。

在修改该文件之前,可以先查看已经安装的语言包:

[ruby] view plain copy

# locale -a  

若其中没有如“zh_CN.gb18030”的中文语言包,可以通过下面的命令进行安装:

[ruby] view plain copy

# yum install kde-l10n-Chinese  

#yum reinstall glibc-common  

安装完成后通过vi命令编辑配置文件

[ruby] view plain copy

<span style="font-size:18px;">#vi /etc/locale.conf</span>  

然后在文件中将原来的相关语句,如

LANG=”en_US.UTF-8”

通过在语句前加”#”注释掉,然后添加新的语句:

LANG=”zh_CN.GB18030”

修改完成后退出保存,并养成检查是否已修改的习惯。如通过命令:

[ruby] view plain copy

#cat /etc/locale.conf  

确认是否已经修改,或者可以通过如下命令查看更改后的系统语言变量:

[ruby] view plain copy

#locale  

[ruby] view plain copy

LANG=zh_CN.GB18030  

LC_CTYPE="zh_CN.GB18030"  

LC_NUMERIC="zh_CN.GB18030"  

LC_TIME="zh_CN.GB18030"  

LC_COLLATE="zh_CN.GB18030"  

LC_MONETARY="zh_CN.GB18030"  

LC_MESSAGES="zh_CN.GB18030"  

LC_PAPER="zh_CN.GB18030"  

LC_NAME="zh_CN.GB18030"  

LC_ADDRESS="zh_CN.GB18030"  

LC_TELEPHONE="zh_CN.GB18030"  

LC_MEASUREMENT="zh_CN.GB18030"  

LC_IDENTIFICATION="zh_CN.GB18030"  

LC_ALL=  

需要注意的是,修改完成之后在系统中可能不会立即生效。通过source命令即可使修改生效:

[ruby] view plain copy

#source /etc/locale.conf  

到此,系统即可较好的显示中文了。

另外,如果采用SecureCRT等软件与linux系统远程连接,则最好将SecurCRT软件的字符集和linux采用的字符集保持一致。

若想临时修改为英文,可以使用如下命令:

[ruby] view plain copy

<span style="font-size:18px;">#LANG=EN</span>  

重启后,修改的内容会失效。

CentOS 7 修改默认字符集

运维帮忙新装了几台机器,默认的配置下登录的时候还有执行locale命令都会报错:

locale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_ALL to default locale: No such file or directory123

解决办法是修改文件/etc/locale.conf,增加如下配置项:

LC_ALL="en_US.UTF-8"LC_CTYPE="en_US.UTF-8"123

LC_ALLLC_CTYPE具体的值视情况,可以配置为zh_CN.UTF-8,或者locale -a命令返回的字符集