2.4.1.2. Linux系列
在linux上执行locale命令,可以得出类似如下内容:
| [hxli@localhost ~]$ locale 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= |
这表明,所使用的操作系统支持GB18030,且默认提供GB18030的支持。
在Linux系统,一样的原理,多字节字符的支持基于机内码。
Linux具体实现,用程序员的角度看,是Glibc函数库中的函数提供的。Glibc函数库中提供的与代码集相关的多字节字符与宽字符处理函数是Linux实用程序支持国际化本地化的核心(了解Glibc,请参看:http://oss.org.cn/?action-viewnews-itemid-3901)。
通过这些函数,应用程序把英文与各种本地文字同样处理。
而Locale则是本地化工作的一个基石。因为不管是Glibc,还是系统的其它部分,都是通过读取系统当前的Locale设定来识别当前的本地化区域,从而使用正确的字符映射表[1](Windows系统上是使用正确的“代码页”)和消息函数。而Locale设定,可以通过系统环境变量LANG、LC_ALL、LANGUAGE去设置。Locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别,可以参看:
http://blog.chinaunix.net/u2/60913/showart_1161340.html
本文介绍Linux系统中如何通过locale设置本地化环境,支持多种字符集如GB18030,并详细解释了环境变量LANG、LC_ALL等的作用及区别。

被折叠的 条评论
为什么被折叠?



