计算机是如何处理中文的(七)

本文介绍Linux系统中如何通过locale设置本地化环境,支持多种字符集如GB18030,并详细解释了环境变量LANG、LC_ALL等的作用及区别。
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设定,可以通过系统环境变量LANGLC_ALLLANGUAGE去设置。Locale的设定及其LANGLC_ALLLANGUAGE环境变量的区别,可以参看:

http://blog.chinaunix.net/u2/60913/showart_1161340.html


[1] 字符映射表Linux可执行的locale命令,man locale时,可看到:Write names of available charmaps

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值