gb18030:Linux中文化之 中文化与GB18030标准




  感谢Xteam中国软件Software有限公司推荐此文
  Linux中文化是Linux真正在中国获得应用首先需要解决问题从Xteam推出世界上第个中文Linux开始中文化走过了本地化(LocalizationL10N)到国际化(InternationalizationI18N)发展路程现在已经推出了可以流畅处理中文Linux产品
  本地化即L10N要解决问题是如何将系统中其它语言信息转变为本地文字对于Linux而言就是要让应用界面、提示信息变成中文国际化即I18N解决问题则是如何透明地处理各种语言文字在不需要对应用做改动前提下能够显示、输入、处理各种语言目前I18N是解决世界上各种语言处理最好方式
  在Linux上实现I18N所要做工作是:
  * 使Linux核心支持I18N
  * 使glibc支持I18Nglibc是Linux系统中最底层支持软件Software通过glibc中提供locale机制应用能够实现I18N
  * 使XWindow支持I18NXwindow是Linux下最常用图形界面系统它采用了Xlocale机制为应用提供I18N支持
  * 使其它应用如、Mozilla支持I18N、Mozilla等跨平台应用提供自己I18N支持
  目前除了Linux核心仍然不能进行各种语言文字显示和输入其它部分能够比较好支持I18N
  除了I18N个影响Linux中文信息处理关键是中文信息编码在中国中文信息编码由政府负责制定并监督实施这是为了保证对于所有系统中文编码都是能够互相进行操作从计算机应用开始我国已经颁布了多种中文信息编码标准常用是GB2312-1980GB12345GB13000(GBK)以及最新标准GB18030值得最新GB18030标准将要作为强制标准实行所有不支持GB18030标准软件Software将不能作为产品出售
  从GB2312-1980编码开始汉字都是采用双字节编码为了和系统中基本ASCII集区分开所有汉字编码每个字节位都是1例如:“啊”字编码为0xB0A1GB2312汉字编码规则为:第个字节值在0xB0到0xF7的间第 2个字节值在0xA0到0xFE的间GB12345和GB13000是对GB2312-1980扩充所有已经包含在GB2312中汉字编码不变另外增加更多码位其编码规则大致为:第个字节值在0x81到0xFE的间第 2个字节值在0x40到0xFE的间由于GB13000是对GB2312扩展所以也被成为GBK
  GB18030也是对GB2312扩展其编码长度由2个字节变为1~4个字节其中包括:
  * 单字节其值从0到0x7F
  * 双字节个字节值从0x81到0xFE第 2个字节值从0x40到0xFE(不包括0x7F)
  * 4字节个字节值从0x81到0xFE第 2个字节值从0x30到0x39第 3个字节值从0x81到0xFE第 4个字节值从0x30到0x39
  可以看出GB18030容量非常大共有码位160万左右另外它和GB13000标准是兼容因此所有基于GB13000设计软件Software都能够不经修改运行在支持GB18030系统平台上
  在Linux系统中由于GB18030标准复杂性实现GB18030标准有困难但是幸运在广大Linux开发者共同努力下现在Linux系统已经基本实现了GB18030标准:
  * 在glibc中已经有了GB18030locale以及处理应用可以正确识别并处理GB18030编码
  * 对于Xwindow目前还没有Xfree86组织正式发布GB18030支持但是国内厂家已经积极参加了其中工作例如在最新XteamLinux4.0中不但包括了支持GB18030Xwindow系统常用KDE和GNOME系统目前也已经支持GB18030在KDE中甚至可以直接将GB18030文件打印出来另外XteamLinux4.0中还包括了最新支持GB18030中文输入法
  * 其它应用方面由于Java代码相对封闭对于GB18030支持还不清楚但是由于Java内部采用Unicode作为编码支持GB18030应该不成问题MozillaGB18030支持采用了自己专有方式:将GB18030分为2字节和4字节两种编码分别加以支持但是它这种支持方式还需要些额外配合目前XteamLinux4.0中Mozilla已经能够正确处理GB18030编码例如自动显示个GB18030编码网页
  有关GB18030实现其实包含了许多细节更多详细内容可以参考GB18030标准文本
  
  
  
  
  
Tags:  microsoftgb18030 gb2312gb18030 gb180302000 gb18030

延伸阅读

最新评论

发表评论