博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux程序员必读:中文化与GB18030标准
阅读量:5095 次
发布时间:2019-06-13

本文共 2150 字,大约阅读时间需要 7 分钟。

 

(Leon 感谢Xteam中国软件有限公司推荐此文 2001年07月31日 14:58)
Linux的中文化是Linux真正在中国获得应用首先需要解决的问题。从Xteam推出世界上第一个中文Linux开始,中文化走过了本地化(Localization,L10N)到国际化(Internationalization,I18N)的发展路程,现在已经推出了可以流畅处理中文的Linux产品。
本地化,即L10N要解决的问题是如何将系统中的其它语言的信息转变为本地的文字。对于Linux而言,就是要让应用程序的界面、提示信息变成中文。国际化,即I18N解决的问题则是如何透明地处理各种语言文字,在不需要对应用程序做改动的前提下,能够显示、输入、处理各种语言。目前,I18N是解决世界上各种语言的处理的最好方式。
在Linux上实现I18N,所要做的工作是:

* 使Linux核心支持I18N。

* 使glibc支持I18N。glibc是Linux系统中最底层的支持软件,通过glibc中提供的locale机制,应用程序能够实现I18N。
* 使XWindow支持I18N。Xwindow是Linux下最常用的图形界面系统,它采用了Xlocale机制为应用程序提供I18N支持。
* 使其它应用程序如Java、Mozilla支持I18N。Java、Mozilla等跨平台应用提供自己的I18N支持。

目前,除了Linux核心仍然不能进行各种语言文字的显示和输入,其它的部分能够比较好的支持I18N。

除了I18N,另一个影响Linux中文信息处理的关键是中文信息编码。在中国,中文信息编码由政府负责制定并监督实施。这是为了保证对于所有的系统中文的编码都是一致的,能够互相进行操作。从计算机的应用开始,我国已经颁布了多种中文信息编码标准,常用的是GB2312-1980,GB12345,GB13000(GBK),以及最新标准GB18030。值得一提的是,最新的GB18030标准将要作为强制标准实行,所有不支持GB18030标准的软件将不能作为产品出售。
从GB2312-1980编码开始,汉字都是采用双字节编码。为了与系统中基本的ASCII字符集区分开,所有汉字编码的每个字节的第一位都是1。例如:“啊”字的编码为0xB0A1。GB2312的汉字编码规则为:第一个字节的值在0xB0到0xF7之间,第二个字节的值在0xA0到0xFE之间。GB12345和GB13000是对GB2312-1980的扩充,所有已经包含在GB2312中的汉字编码不变,另外增加更多的码位。其编码规则大致为:第一个字节的值在0x81到0xFE之间,第二个字节的值在0x40到0xFE之间。由于GB13000是对GB2312的扩展,所以也被成为GBK。
GB18030也是对GB2312的扩展,其编码长度由2个字节变为1~4个字节。其中包括:

* 单字节,其值从0到0x7F。

* 双字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x40到0xFE(不包括0x7F)。
* 四字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x30到0x39,第三个字节的值从0x81到0xFE,第四个字节的值从0x30到0x39。

可以看出,GB18030的容量非常大,共有码位160万左右。另外,它与GB13000标准是兼容的。因此,所有基于GB13000设计的软件都能够不经修改运行在支持GB18030的系统平台上。

在Linux系统中,由于GB18030标准的复杂性,实现GB18030标准有一定的困难。但是,幸运的是,在广大Linux开发者的共同努力下,现在的Linux系统已经基本实现了GB18030标准:

* 在glibc中,已经有了GB18030的locale以及处理程序,应用程序可以正确识别并处理GB18030编码。

* 对于Xwindow,目前还没有Xfree86组织正式发布的GB18030支持。但是国内厂家已经积极的参加了其中的工作。例如,在最新的XteamLinux4.0中,不但包括了支持GB18030的Xwindow系统,常用的KDE和GNOME系统目前也已经支持GB18030。在KDE中甚至可以直接将GB18030的文件打印出来。另外,XteamLinux4.0中还包括了最新的支持GB18030的中文输入法。
* 其它应用程序方面,由于Java的代码相对封闭,对于GB18030的支持还不清楚。但是由于Java内部采用Unicode作为编码,支持GB18030应该不成问题。Mozilla的GB18030支持采用了自己的专有方式:将GB18030分为2字节和4字节两种编码,分别加以支持。但是它的这种支持方式还需要一些额外的程序配合。目前,XteamLinux4.0中的Mozilla已经能够正确处理GB18030编码,例如自动显示一个GB18030编码的网页。

关于GB18030的实现其实包含了许多的细节,更多详细的内容可以参考文本。

Source:

转载于:https://www.cnblogs.com/joeyliang/archive/2007/02/28/659781.html

你可能感兴趣的文章
文件操作中file.seek()方法
查看>>
3.Sqrt(x)
查看>>
优雅降级和渐进增强
查看>>
python中时间差中seconds和total_seconds
查看>>
LeetCode | Unique Binary Search Trees II
查看>>
hdu 6191 可持久化trie||线段树套trie||trie启发式合并
查看>>
毁灭程序员的15个障碍
查看>>
SQL Server用表组织数据
查看>>
thinkphp
查看>>
emacs键盘映射
查看>>
SharePoint 2013 地址栏_layouts/15/start.aspx#
查看>>
Redis监控工具redis-stat安装基本步骤
查看>>
[ZZ]** WARNING ** Mnesia is overloaded: {dump_log, write_threshold}
查看>>
禁止横纵向滚动条
查看>>
C#综合揭秘——细说进程、应用程序域与上下文之间的关系 (转自:风尘浪子)...
查看>>
视错觉:从一个看似简单的自定义控件说起
查看>>
获取千牛聊天对象(聊天记录中获取)
查看>>
GridView不換行
查看>>
Map在内存中的结构
查看>>
前端(HTML/CSS/JS)-HTML编码规范
查看>>