为了更好地对国际化和本地化进行支持,Linux系统 提供了符合Posix标准的 NLS(National Language Support)子系统。该子系统建筑在基于ASCII码的Linux核心上,为世界上不同地域、不同语言环境的应用提供国际化本地化支持。
在NLS子系统中,Glibc函数库中提供与代码集相关的多字节字符与宽字符处理函数是Linux实用程序支持国际化本地化的核心,通过这些函数,实用程序把英文与各种本地文字同样处理。
libc通过一种"转换模式"来实现对多字节编码的支持。目前的Glibc采用UTF-8作为处理码。当接收到外部输入的多字节字符时,系统首先根据当前的 Locale 确定所使用的字符集,然后查找从当前字符集到UTF-8之间的转换模式,根据这种转换模式把输入的多字节字符转换为相应的UTF-8字符。相反,当需要输出字符时,系统再查找从UTF-8到当前字符集之间的转换模式,按照这种模式把要输出的UTF-8字符转换为当前字符集中的多字节字符。
Locale是Linux本地化工作的基础,标识不同的区域, 是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的一个软件运行时的语言环境。它在 /usr/lib/locales 目录下面有不同的Locale。有关于local的详细介绍,参考:http://www.syxin.com/2006/03/localelocale.html
参考文档:http://www.ibm.com/developerworks/cn/linux/i18n/gb18030/
2007/11/14