出现了好几次自己的linux系统不认识中文的情况。xshell下设置的是默认语言,输入认识中文,但是由于系统不识别中文,拷贝进linux的文件或者在终端输入的中文,在执行诸如grep ' ' 或者awk寻找时均出现无法识别的情况。那么如何让linux识别你的输入或者你的文件里的中文呢?
首先了解locale命令。
[^_^][03:55:40]-[~] locale -m
ANSI_X3.110-1983
ANSI_X3.4-1968
ARMSCII-8
ASMO_449
BIG5
BIG5-HKSCS
等等
[@_@][03:55:38]-[~] locale -a
C
C.UTF-8
en_AG
en_AG.utf8
等等
locale -m是查看系统支持哪些编码。locale -a查看支持哪些语言.编码包。如果你在locale -m显示列表里未看到gbk的话,说明系统还不支持gbk编码,那么首先要安装这个编码。搜下中文包并安装,命令如下:
[^_^][03:52:22]-[~] apt-cache search language-pack-zh
language-pack-zh-hans - translation updates for language Simplified Chinese
language-pack-zh-hans-base - translations for language Simplified Chinese
language-pack-zh-hant - translation updates for language Traditional Chinese
language-pack-zh-hant-base - translations for language Traditional Chinese
sudo apt-get install language-pack-zhs-hans
安装完gbk,可以再locale -m中发现这个编码。现在将gbk编码和中文打包(在locale -a中看到的zh_CN.utf-8和gbk式的中文是不一样的)。打包命令:
sudo localedef -i zh_CN -f GB18030 zh_CN.gb18030
locale -a
看到系统中已经支持中文.gbk了。这个时候,我们需要在系统开机时设置系统变量,令其使用这种编码。在vi /home/ck/.bash_profile 中修改:
export LANG=zh_CN.gb18030
这样,重新login一次系统。即支持中文啦。
某些原utf-8文件,需要转成gb来查看:
iconv -f utf-8 -t gb18030 README.md