Linux程序员必读:中文化与GB18030标准
(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标准文本。
Source: Linux程序员必读:中文化与GB18030标准
转载于:https://www.cnblogs.com/joeyliang/archive/2007/02/28/659781.html
Linux程序员必读:中文化与GB18030标准相关推荐
- 十大面试问题解惑,秒杀一切HR、技术面试。程序员必读! 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余。小编收集了10个面试官最爱提的问题
十大面试问题解惑,秒杀一切HR.技术面试.程序员必读! 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余.小编收集了10个面试官最爱提的问题 ...
- 开发推荐书单 程序员必读书目推荐 测试必读书目 管理必读 技术组长必读 前端开发必读
1.程序员必读书目推荐 说明 这里面的书是必读书籍,是必要条件,而不是充要条件.其他也要包括:官方文档.工具书(pro git等). 前端基础 <HTML5与CSS3基础教程 第8版> & ...
- C/C++程序员必读的十本书(上)
在Gmail TopLanguage Group 中看到一篇文章"C/C++程序员必读的十本书(上)",大家的讨论都很激励,大家都觉得这篇文章写得很棒,我想在Group里的朋友都 ...
- 转:程序员必读书单 1.0
本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读.旨在成为最好最全面的程序员必读书单. 前言 Reading makes a ...
- C语言程序员必读的5本书
C语言程序员必读的5本书 你正计划着通过看书来学习C语言吗?"书籍是人类最忠诚的朋友".海明威一定知道书籍对一个人一生的重要性.书籍是知识的丰富来源.你可以从书中学到各种知识.书籍 ...
- C程序员必读的 3 本书
C程序员必读的 3 本书 原创: Martin 老师 公众号:零基础零障碍学习C语言 勿用质疑,今天来看这篇文章的朋友都是准备学好C语言的朋友,大家想学好C语言的迫切性,就好比Martin老师等着元 ...
- 程序员必读书单 1.0 ----转自Lucida
本文转载自:http://lucida.me/blog/developer-reading-list/ 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书 ...
- 程序员必读书单 (仅供参考)
转载:http://zh.lucida.me/blog/developer-reading-list/ 程序员必读书单 1.0 发表于 2015-02-25 | 分类于 阅读 | ...
- 程序员必读书单(非常经典,强烈推荐)
原文链接:http://lucida.me/blog/developer-reading-list/ 关于 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入 ...
- 程序员必读书单(转载)
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://lucida.me/blog/developer-reading-list/ 关于 本文把程序员所需掌握 ...
最新文章
- “2016智能终端峰会新闻发布会暨移动信息化可信选型认证结果发布会” —— 在京成功召开...
- docker修改默认存储位置
- Intel Realsense D435 多摄像头配置 Multi-camera configurations (220)(官方测试的摄像头配置表【不同带宽下分辨率、帧率等】)
- 从零开始数据科学与机器学习算法-数据预处理与基准模型-01
- 浅谈游戏单位属性模块设计:属性组成、分级、计算与同步
- 组合和聚合的区别,通俗易懂。
- Google的自动驾驶汽车无事故成功完成30万英里的驾驶路程
- Centos7.4系统下安装httpd,mariadb,php7.1环境运行禅道
- 收藏:PCWorld:火狐浏览器已宣告死亡
- linux服务器跟踪命令,Linux下使用strace命令来跟踪.htaccess的使用
- Pytorch在colab和kaggle中使用TensorBoard/TensorboardX可视化
- Linux shell脚本详解及实战(三)——shell脚本循环
- 比特币 POW 白皮书 区块篡改成功的概率计算详解
- 重标极差分析法matlab,重标极差(RS)分析法估计Hurst指数的有效性检验.doc
- java计算机毕业设计网上鲜花交易平台源代码+数据库+系统+lw文档
- 测试用例之因果图分析法
- Oliver的救援(广搜练习题)
- Oracle 中的Userenv()
- 【R语言】多模型综合——CLS(GRS)加权平均法的实现
- Fms+Vcam实现flv网络直播