汉字内码扩展规范
GBK即汉字内码扩展规范,K为汉语拼音 Kuo Zhan(扩展)中“扩”字的声母。英文全称Chinese Internal Code Specification。
目录 |
历史 [编辑]
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个控制符号。
之后的双字节中,前一字节是双字节的第一位。总体上说第一字节的范围是81–FE(也就是不含80和FF),第二字节的一部分领域在40–7E,其他领域在80–FE。
具体来说,定义的是下列字节:
| 范围 | 第1字节 | 第2字节 | 编码数 | 字数 |
|---|---|---|---|---|
| 水准 GBK/1 | A1–A9 |
A1–FE |
846 | 717 |
| 水准 GBK/2 | B0–F7 |
A1–FE |
6,768 | 6,763 |
| 水准 GBK/3 | 81–A0 |
40–FE (7F除外) |
6,080 | 6,080 |
| 水准 GBK/4 | AA–FE |
40–A0 (7F除外) |
8,160 | 8,160 |
| 水准 GBK/5 | A8–A9 |
40–A0 (7F除外) |
192 | 166 |
| 用户定义 | AA–AF |
A1–FE |
564 | |
| 用户定义 | F8–FE |
A1–FE |
658 | |
| 用户定义 | A1–A7 |
40–A0 (7F除外) |
672 | |
| 合计: | 23,940 | 21,886 |
双字节符号可以表达的64K空间如下图所示。绿色和黄色区域是GBK的编码,红色是用户定义区域。没有颜色区域是不正确的代码组合。
与其他编码的关系 [编辑]
GBK向下完全兼容GB2312-80编码。 支持GB2312-80编码不支持的部分中文姓,中文繁体,日文假名,还包括希腊字母以及俄语字母等字母。不过这种编码不支持韩国字,也是其在实际使用中与unicode编码相比欠缺的部分。
上述GBK/1和GBK/2的领域即GB 2312-80用通常方法编码的区域。GB 2312 (正确说法是其根据EUC-CN的编码)和ISO/IEC 2022中调用GR其他的94² 字符集一样,A1–FE的范围开始读取字节对。这是上图中右下角的部分。但是,GB 2312中对于AA–AF和F8–FE区域是空的,没有赋予编码。于是GBK就在这些领域里进行拓展。二者剩余部分作为用户定义区。
更重要的是,GBK进行了字节范围的扩展。ISO/IEC 2022中GR区域的字数有94²=8,836字的限制。只要放弃ISO/IEC 2022中针对图形文字和控制文字赋予严格的范围的模式,下位字节为单字节文字,上位字节对保留对应字符的功能,潜在的128²=16,384的代码位置就可以使用。GBK采用其中的一部分,从A1–FE (每个字节有94个选项) 的范围开始、第一字节向 81–FE (126个选项) 、第二字节向 40–FE (191个选项) 进行扩展。
與CP936字码表比較 [编辑]
微软的CP936通常被視为等同GBK,連 IANA 也以「CP936」為「GBK」之別名[1]。事实上比较起来, GBK 定義之字符較 CP936 多出95字(15個非漢字及80個漢字),皆為其時未收入 ISO 10646 / Unicode 之符號:非漢字包括異體字符號[2]、十二個表意文字描述字元(Ideographic Description Characters)[3]及 GB 5007.1-85《信息交換用漢字 24x24 點陣字模集》附錄對 GB 2312 增加,但 Unicode 未收之拼音符號「ḿ」和「ǹ」[4][5];漢字包括未收入 ISO 10646 的《簡化字總表》漢字52個、《康熙字典》及《辭海》漢字部件28個[4]。CP936中的这95字分配到了Unicode的私有区域[6][7],現已全部收於新版 Unicode。
输入方法 [编辑]
后续 [编辑]
中华人民共和国国家质量技术监督局于2000年3月17日推出了GB 18030-2000标准,以取代GBK。GB 18030-2000除保留全部GBK编码汉字,在第二字节把能使用范围再度进行扩展,增加了大约一百个汉字及四位元组编码空间,但是将GBK作为子集全部保留。请参看GB 18030。
参见 [编辑]
注釋 [编辑]
- ^ http://www.iana.org/assignments/charset-reg/GBK
- ^ 〾(U+303E)[1]
- ^ ⿰⿱⿲⿳⿴⿵⿶⿷⿸⿹⿺⿻(U+2FF0 - U+2FFB)[2]
- ^ 4.0 4.1 簡體中文版 Windows 95 “GBK 内码输入法”帮助文件,1995年
- ^ http://www.microsoft.com/globaldev/reference/dbcs/936/936_A8.mspx 可見六個拼音符號有兩個沒有收入(A8BC及A8BF);「ḿ」現為U+1E3F、「ǹ」現為U+01F9;舊電腦可以m和U+0301以及n和U+0300合成(顯示如「ḿ」及「ǹ」)
- ^ use of private area in GBK converter. [2007年12月25日].
- ^ PRC GBK (XGB). [2008-12-7].[失效連結] - 以前存在於Microsoft typography的Character sets and codepages頁面的GBK與Unicode之間的變換表。
外部链结 [编辑]
|
|||||||||||||||||||||||||||||||||||||||||||||||