(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标准相关推荐

  1. 十大面试问题解惑,秒杀一切HR、技术面试。程序员必读! 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余。小编收集了10个面试官最爱提的问题

    十大面试问题解惑,秒杀一切HR.技术面试.程序员必读! 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余.小编收集了10个面试官最爱提的问题 ...

  2. 开发推荐书单 程序员必读书目推荐 测试必读书目 管理必读 技术组长必读 前端开发必读

    1.程序员必读书目推荐 说明 这里面的书是必读书籍,是必要条件,而不是充要条件.其他也要包括:官方文档.工具书(pro git等). 前端基础 <HTML5与CSS3基础教程 第8版> & ...

  3. C/C++程序员必读的十本书(上)

    在Gmail TopLanguage  Group 中看到一篇文章"C/C++程序员必读的十本书(上)",大家的讨论都很激励,大家都觉得这篇文章写得很棒,我想在Group里的朋友都 ...

  4. 转:程序员必读书单 1.0

    本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读.旨在成为最好最全面的程序员必读书单. 前言 Reading makes a ...

  5. C语言程序员必读的5本书

    C语言程序员必读的5本书 你正计划着通过看书来学习C语言吗?"书籍是人类最忠诚的朋友".海明威一定知道书籍对一个人一生的重要性.书籍是知识的丰富来源.你可以从书中学到各种知识.书籍 ...

  6. C程序员必读的 3 本书

    C程序员必读的 3 本书 原创: Martin 老师  公众号:零基础零障碍学习C语言 勿用质疑,今天来看这篇文章的朋友都是准备学好C语言的朋友,大家想学好C语言的迫切性,就好比Martin老师等着元 ...

  7. 程序员必读书单 1.0 ----转自Lucida

    本文转载自:http://lucida.me/blog/developer-reading-list/ 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书 ...

  8. 程序员必读书单 (仅供参考)

    转载:http://zh.lucida.me/blog/developer-reading-list/ 程序员必读书单 1.0 发表于 2015-02-25    |   分类于 阅读    |   ...

  9. 程序员必读书单(非常经典,强烈推荐)

    原文链接:http://lucida.me/blog/developer-reading-list/ 关于 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入 ...

  10. 程序员必读书单(转载)

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://lucida.me/blog/developer-reading-list/ 关于 本文把程序员所需掌握 ...

最新文章

  1. “2016智能终端峰会新闻发布会暨移动信息化可信选型认证结果发布会” —— 在京成功召开...
  2. docker修改默认存储位置
  3. Intel Realsense D435 多摄像头配置 Multi-camera configurations (220)(官方测试的摄像头配置表【不同带宽下分辨率、帧率等】)
  4. 从零开始数据科学与机器学习算法-数据预处理与基准模型-01
  5. 浅谈游戏单位属性模块设计:属性组成、分级、计算与同步
  6. 组合和聚合的区别,通俗易懂。
  7. Google的自动驾驶汽车无事故成功完成30万英里的驾驶路程
  8. Centos7.4系统下安装httpd,mariadb,php7.1环境运行禅道
  9. 收藏:PCWorld:火狐浏览器已宣告死亡
  10. linux服务器跟踪命令,Linux下使用strace命令来跟踪.htaccess的使用
  11. Pytorch在colab和kaggle中使用TensorBoard/TensorboardX可视化
  12. Linux shell脚本详解及实战(三)——shell脚本循环
  13. 比特币 POW 白皮书 区块篡改成功的概率计算详解
  14. 重标极差分析法matlab,重标极差(RS)分析法估计Hurst指数的有效性检验.doc
  15. java计算机毕业设计网上鲜花交易平台源代码+数据库+系统+lw文档
  16. 测试用例之因果图分析法
  17. Oliver的救援(广搜练习题)
  18. Oracle 中的Userenv()
  19. 【R语言】多模型综合——CLS(GRS)加权平均法的实现
  20. Fms+Vcam实现flv网络直播

热门文章

  1. Gerrit搭建与代码下载
  2. 7 大版块 | 全面解读与认知支付系统
  3. windows系统清理磁盘临时文件,及缓冲文件,及离线文件和空闲文件
  4. 命令行BASH的基本操作
  5. 理解与学习linux 文件系统的目录结构
  6. Entity Framework Fluent API
  7. 推荐一个自动写paper的软件,让IEEE吐血泪奔
  8. gnuplot在windows下的安装和使用
  9. 163网站顶部展出的大幅广告
  10. STM32零碎问题记录