当我们使用 man command 的方式去查询某个数据的说明文件时,该说明档的内容可能会因为我们使用的语系不同而产生乱码。 另外,利用 ls 或 cat 等待查询时,也可能会有乱码出现,那个问题其实就是语系的问题啦。
我们的 Linux 到底支持了多少的语系呢?这可以由 locale 这个指令来查询到。
linux-peej:~ # locale -a
C
POSIX
aa_DJ
aa_DJ.utf8
aa_ER
......省略......
通过 locale指令,查看当前系统所支持的语系,这些语系档案都放置在: /usr/lib/locale/ 这个目录中。以下是我suse linux 中所使用的语系:
linux-peej:~ # locale
LANG=POSIX
LC_CTYPE=zh_CN.UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
基本上,可以逐一设定每个与语系有关的变量数据,但事实上,如果其他的语系变量都未设定, 且你有设定 LANG 或者是 LC_ALL 时,则其他的语系变量就会被这两个变量所取代! 这也是为什么我们在 Linux 当中,通常说明仅设定 LANG 这个变量而已,因为他是最主要的设定变量!
Tips: 无论如何,如果发生一些乱码的问题,那么设定系统里面保有的语系编码, 例如: en_US 或 en_US.utf8 (英文,通用)等等的设定,应该就 OK 的啦!好了,那么系统默认支持多少种语系呢? 当我们使用 locale 时,系统是列出目前 Linux 主机内保有的语系档案, 这些语系档案都放置在: /usr/lib/locale/ 这个目录中。