Unicode编码 学习笔记(2) —— GBK

GBK汉字内码扩展规范K为汉语拼音 Kuo Zhan(扩展)中“扩”字的声母。英文全称Chinese Internal Code Specification。

 

前面说了GB2312只覆盖了常用的汉字,很多后来新加的和生僻字没有加入,为了解决这个问题,中国大陆订定了等同于Unicode 1.1版本的“GB 13000.1-93”,包含20,902个汉字,这里面还包括了台湾及香港使用的繁体字日语朝鲜语汉字等等,这套标准实际上最后没有流通起来,我们日常生活中经常使用的是一套叫GBK的编码,GBK大家有点而熟悉吧,我们在windows平台上默认使用的就是这种编码,因为它是微软开发的,它收录了GB 13000的所有字符,但是编码方式不同(也就是字符与整数的对应关系不同)。GBK实际上利用的是GB2312中没有利用到的编码空间来扩展字符集的,GBK的编码方式如下,从wiki上抄来的

 

GBK编码方式

字符有一字节和双字节编码,007F范围内是一位,和ASCII保持一致,此范围内严格上说有96个文字和32个控制符号。之后的双字节中,前一字节是双字节的第一位。总体上说第一字节的范围是81FE(也就是不含80FF),第二字节的一部分领域在40FE,其他领域在80FE。具体来说,定义的是下列字节:

PA@Q9IEG@H1((2`I`R)7SHY

双字节符号可以表达的64K空间如下图所示。绿色和黄色区域是GBK的编码,红色是用户定义区域。没有颜色区域是不正确的代码组合。

 

用wiki上的一个图可以很好的表达“编码空间”这个概念,其实是一个二维的图,每个区域为不同的编码区域,如下

3([P`L`_G(E[80HP_47C[2U

 

还有一种GB18030的编码标准,实际上是国家推出的一种取代GBK的编码,它完全兼容GBK,但是又增加了一些编码空间。wiki上对它的简单介绍

 

GB 18030,全称:国家标准GB 18030-2005《信息技术 中文编码字符集》,是中华人民共和国现时最新的内码字集,是GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》的修订版。与GB 2312-1980完全兼容,与GBK基本兼容,支持GB 13000Unicode的全部统一汉字,共收录汉字70244个。

GB 18030主要有以下特点:

  • UTF-8 相同,采用多字节编码,每个字可以由1个、2个或4个字节组成。
  • 编码空间庞大,最多可定义161万个字符。
  • 支持中国国内少数民族的文字,不需要动用造字区。
  • 汉字收录范围包含繁体汉字以及日韩汉字

本规格的初版使中华人民共和国信息产业部电子工业标准化研究所起草,由国家质量技术监督局于2000年3月17日发布。现行版本为国家质量监督检验总局和中国国家标准化管理委员会于2005年11月8日发布,2006年5月1日实施。此规格为在中国境内所有软件产品支持的强制规格。

posted on 2011-06-14 11:39  超级福满多  阅读(364)  评论(0编辑  收藏  举报