`

Linux程序员必读:中文化与GB18030标准

阅读更多

转载自    沸腾的石头     http://www.boilstone.com/bbs/viewthread.php?tid=197

(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的实现其实包含了许多的细节,更多详细的内容可以参考GB18030标准文本。

分享到:
评论

相关推荐

    JAVA程序员必读:基础篇

    JAVA程序员必读:基础篇

    JAVA程序员必读:基础篇.chm

    我整理生成的CHM格式文件 JAVA程序员必读:基础篇.chm 因为最近在搞这个所以整理了一些资料和大家分享 并非本人原创,郑重感谢原作者!

    JAVA程序员必读:提高篇

    《JAVA程序员必读:提高篇》是一本专为已经掌握Java基础知识并希望进一步提升技能的程序员设计的进阶教程。本书以chm(Compiled HTML Help)格式呈现,这种格式允许读者通过关键字搜索迅速找到所需信息,提高了学习...

    JAVA程序员必读:基础篇(4)JSP教程,Java技巧及代码

    JAVA程序员必读:基础篇(4)类和继承-JSP教程,Java技巧及代码

    JAVA程序员必读:基础篇(2)JSP教程,Java技巧及代码

    JAVA程序员必读:基础篇(2)面向对象编程概念-JSP教程,Java技巧及代码

    超强版linux程序员手册

    3. **C/C++编程**:作为Linux系统编程的主要语言,手册深入讲解了C和C++编程,涵盖了语言特性、标准库、内存管理、错误处理等方面,还特别强调了与Linux系统交互的技巧,如系统调用、I/O操作、多线程编程等。...

    ACE程序员指南:网络与系统编程的使用设计模式

    ACE程序员指南:网络与系统编程的使用设计模式,高并发网络编程

    程序员必读index程序员必读indexv

    【标题】"程序员必读index程序员必读indexv"似乎是一个关于程序员阅读推荐的资源集合,其中可能包含了一系列与编程、软件开发和技术趋势相关的文章、书籍或教程索引。这样的资源通常旨在帮助程序员提升技能、了解...

    Linux程序员— C语言

    Linux程序员在学习C语言的过程中,会接触到一系列关键概念和技术,这些是成为一名熟练的系统级开发者的基础。本资源包包含了电子教案、源代码和其他相关资料,为深入理解和实践C语言提供了全面的学习材料。 首先,...

    \国外程序员推荐:每个程序员都应读的书

    国外程序员推荐:每个程序员都应读的书 ,开发设计人员必备

    程序员必读书推荐

    最后,《哥德尔、艾舍尔、巴赫书:集异璧之大成》是一本挑战性的书籍,它不仅仅是关于程序设计的,而是将计算机科学与数学、哲学等领域的知识相联系,帮助程序员拓宽视野,激发思考。 这些书籍的推荐数反映了它们在...

    面向对象设计程序员必读

    面向对象设计程序员必读,c++初学者适合一看,各有启迪

    程序员必读经典电子书收集

    程序员必读经典电子书收集 包括设计模式 C++ 算法等等

    C++程序员必读书目清单

    以下是一份详细的C++程序员必读书目清单,分为五个阶段,逐步引导读者从入门到精通。 阶段1:基础入门 1. 《Essential C++》:这本书适合C++初学者,它以简洁明了的方式介绍了C++的基础概念,包括语法、函数和结构...

    ACE程序员指南 网络与系统编程的实用设计模式 part2

    ACE程序员指南 网络与系统编程的实用设计模式 part2

    Java程序员必读基础篇

    JAVA是有SUN公司开发的新一代编程语言,它可以用在各种不同的机器、操作系统的网络环境中...所以作为Internet应用的开发技术人员不可不看JAVA,而JAVA程序不可不先从基础学起,这正是JAVA程序员必读:基础篇的用意。

    JAVA程序员必读基础篇

    JAVA是有SUN公司开发的新一代编程语言,它可以用在各种不同的机器、操作系统的网络环境中...所以作为Internet应用的开发技术人员不可不看JAVA,而JAVA程序不可不先从基础学起,这正是JAVA程序员必读:基础篇的用意。

    程序员101:如何自学编程[整理].pdf

    程序员101:如何自学编程[整理].pdf

    Linux程序员指南——详细

    绝对详细的Linux指南,从Linux基础知识开始,直到高级编程,不仅适合Linux程序员,也适用学习Linux的朋友

    JAVA程序员必读基础篇.rar

    JAVA是有SUN公司开发的新一代编程语言,它可以用在各种不同的机器、操作系统的网络环境中...所以作为Internet应用的开发技术人员不可不看JAVA,而JAVA程序不可不先从基础学起,这正是JAVA程序员必读:基础篇的用意。

Global site tag (gtag.js) - Google Analytics