GB2312,GBK,GB18030详解

来源:互联网 发布:sqlserver 别名 编辑:程序博客网 时间:2024/06/13 12:37

1. GB2312

       GB2312 是中国国家标准简体中文字符集,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于中国大陆新加坡等地也采用此编码中国大陆几乎所有的中文系统和国际化的软件都支持GB2312

       GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。GB 2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。但对于人名、古汉语等方面出现的罕用字和繁体字,GB 2312不能处理,因此后来GBK及GB 18030汉字字符集相继出现以解决这些问题。

        编码方式:

       GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。

  • 01-09区为特殊符号
  • 16-55区为一级汉字,按拼音排序
  • 56-87区为二级汉字,按部首/笔画排序
  • 10-15区及88-94区则未有编码

2. GBK

GBK即汉字内码扩展规范,K即扩展1993年,Unicode 1.1版本推出,收录中国大陆、台湾、日本及韩国通用字符集的汉字,总共有20,902个。中国大陆订定了等同于Unicode 1.1版本的“GB 13000.1-93”“信息技术通用多八位编码字符集(UCS)第一部分。
       由于GB 2312-80只收录6763个汉字,有不少汉字,如部分在GB 2312-80推出以后才简化的汉字(如“啰”),部分人名用字(如中国前总理朱镕基的“镕”字),台湾及香港使用的繁体字,日语及朝鲜语汉字等,并未有收录在内。于是微软利用GB 2312-80未使用的编码空间,收录GB 13000.1-93全部字符制定了GBK编码。GBK是对GB2312-80的扩展,也就是CP936字码表 (Code Page 936)的扩展(之前CP936和GB 2312-80一模一样),最早实现Windows 95简体中文版。虽然GBK收录GB 13000.1-93的全部字符,但编码方式并不相同。
       GBK自身并非国家标准,只是曾相关部门公布为“技术规范指导性文件”。原始GB13000一直未被业界采用,后续国家标准GB18030技术上兼容GBK而非GB13000。

       编码方式
       字符有一字节和双字节编码,00–7F范围内是一位,和ASCII一致,此范围内严格上说有96个文字和32个控制符号。GBK向下完全兼容GB2312-80编码。 支持GB2312-80编码不支持的部分中文姓,中文繁体,日文假名,还包括希腊字母以及俄语字母等字母。不过这种编码不支持韩国字,也是其在实际使用中与unicode编码相比欠缺的部分。
之后的双字节中,前一字节是双字节的第一位。总体上说第一字节的范围是81–FE(也就是不含80和FF),第二字节的一部分领域在40–7E,其他领域在80–FE。

3. GB18030

       GB 18030,是中国现时最新的内码字集,是GB 18030-2000的修订版。与GB 2312-1980完全兼容,与GBK基本兼容,支持GB 13000及Unicode的全部统一汉字,共收录汉字70244个。
       GB 18030主要有以下特点:  

  • 与 UTF-8 相同,采用多字节编码,每个字可以由1个、2个或4个字节组成
  • 编码空间庞大,最多可定义161万个字符
  • 支持中国国内少数民族的文字,不需要动用造字区
  • 汉字收录范围包含繁体汉字以及日韩汉字
        单字节,其值从0到0x7F。
      双字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x40到0xFE(不包括0x7F)。
      四字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x30到0x39,第三个字节从0x81到0xFE,第四个字节从0x30到0x39。

      GB 18030-2000,兼容 Unicode 3.0 中日韩统一表意文字,共收27533个汉字;2000年3月17日发布
      GB 18030-2005,更新至 Unicode 3.1 中日韩统一表意文字及增加少数民族文字,共有70244个汉字;2005年11月8日发布、2006年5月1日实施

0 0
原创粉丝点击