10.2.4
影响显示½果的语系变量
(locale)
还记得我们在
第四章里面提到的语系问题
吗?
就是当我们使用
man command
的方式去查询某个数
据的说明文件时,该说明档的内容可能会因为我们使用的语系不同而产生乱码。
另外,利用
ls
询文件的时间时,也可能会有乱码出现在时间的部分。那个问题其实就是语系的问题啦。
目前大多数的
Linux distributions
已经都是支持日½流行的万国码了,也都支持大部分的国家语系。
那么我们的
Linux
到底支持了多少的语系呢?这可以由
locale
这个指令来查询到喔!
[dmtsai@study ~]$
locale
-
a
....(
前面省略
)....
zh_TW
zh_TW.big5
<==
大五
的中文
编码
zh_TW.euctw
zh_TW.utf8
<==
国码
的中文
编码
zu_ZA
zu_ZA.iso88591
zu_ZA.utf8
正体中文语系至少支持了两种以上的编码,一种是目前还是很常见的
big5
,另一种则是越来越热门
utf-8
编码。
那么我们如何修订这些编码呢?其实可以透过底下这些变量的说:
[dmtsai@study ~]$
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"
<==
示的
容,如菜
错误讯
息等
LC_ALL=
<==
整体
系的
....(
后面省略
)....
基本上,你可以逐一设定每个与语系有关的变量数据,但事实上,如果其他的语系变量都未设定,
你有设定
LANG
或者是
LC_ALL
时,则其他的语系变量就会被这两个变量所取代!
这也是为什么
我们在
Linux
当中,通常说明½设定
LANG
LC_ALL
这两个变量而已,因为他是最主要的设定
变量!
好了,那么你应该要觉得奇怪的是,为什么在
Linux
主机的终端机½口
(tty1 ~ tty6)
的环境
下,如果设定『
LANG=zh_TW.utf8
』这个设定值生效后,使用
man
或者其他讯息输出时,
都会
有一堆乱码,尤其是使用
ls -l
这个参数时?
因为在
Linux
主机的终端机½口环境下是无法显示像中文这么复杂的编码文字,
所以就会产生乱码
了。也就是如此,我们才会必须要在
tty1 ~ tty6
的环境下,
加装一些中文化½口的软件,才能够看
到中文啊!不过,如果你是在
MS Windows
主机以远程联机服务器的软件联机到主机的话,那么,
嘿嘿!其实文字½口确实是可以看到中文的。
此时反而你得要在
LC_ALL
设定中文编码才好呢!