本页使用了标题或全文手工转换

GB 18030

维基百科,自由的百科全书
跳转至: 导航搜索

GB 18030,全称:“国家标准GB 18030-2005《信息技术 中文编码字符集》”,是中华人民共和国现时最新的变长度多字节字符集。对GB 2312-1980完全向后兼容,与GBK基本向后兼容;支持GB 13000Unicode)的所有码位;共收录汉字70,244个。

GB 18030主要有以下特点:

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

本规格的初版“GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》”是由中华人民共和国信息产业部电子工业标准化研究所起草,由国家质量技术监督局于2000年3月17日发布。在GBK基础上增加了CJK统一汉字扩充A的汉字。

现行版本为国家质量监督检验总局和中国国家标准化管理委员会于2005年11月8日发布,2006年5月1日实施;是在GB18030-2000基础上增加了CJK统一汉字扩充B的汉字。

此标准内的单字节编码部分、双字节编码部分,和四字节编码部分收录的中日韩统一表意文字扩展A区汉字,为强制性标准。其他部分则属于规模性标准。在中华人民共和国境内所有软件产品,都需要支持这个同时包含单字节、双字节和四字节编码的规格。

GB 18030在微软视窗代码页54936

Unicode支持[编辑]

GB 18030在其标准中以码表形式定义了除去代理对英语surrogate pair外的全部Unicode码位的定义,因此算得上是一种Unicode的变换格式(UTF)。由于GB 18030基本上是绕开已分配的码点去指定需要对应的Unicode,其变换和UTF-8相比要复杂得多。在日常实现上,常常会直接使用一个偏移量表[1]

GB 18030—2005与GB18030—2000、GBK相比,去除了很多原来映射在PUA中的编码。后来剩余的24个PUA码位也在Unicode 4.1中加上,如下所示。

国标码码表中私有区码位的演变
GB 字节串 Unicode 码位
GBK 1.0[2] GB 18030-2005 Unicode 4.1
A6D9[3]:108 E78D () FE10 (︐)
A6DA E78E () FE12 (︒)
A6DB E78F () FE11 (︑)
A6DC E790 () FE13 (︓)
A6DD E791 () FE14 (︔)
A6DE E792 () FE15 (︕)
A6DF E793 () FE16 (︖)
A6EC E794 () FE17 (︗)
A6ED E795 () FE18 (︘)
A8BC E7C7 () 1E3F (ḿ) 1E3F (ḿ)
A8BF E7C8 () 01F9 (ǹ) 01F9 (ǹ)
A989 E7E7 () 303E (〾) 303E (〾)
A98A E7E8 () 2FF0 (⿰) 2FF0 (⿰)
A98B E7E9 () 2FF1 (⿱) 2FF1 (⿱)
A98C E7EA () 2FF2 (⿲) 2FF2 (⿲)
A98D E7EB () 2FF3 (⿳) 2FF3 (⿳)
A98E E7EC () 2FF4 (⿴) 2FF4 (⿴)
A98F E7ED () 2FF5 (⿵) 2FF5 (⿵)
A990 E7EE () 2FF6 (⿶) 2FF6 (⿶)
A991 E7EF () 2FF7 (⿷) 2FF7 (⿷)
A992 E7F0 () 2FF8 (⿸) 2FF8 (⿸)
A993 E7F1 () 2FF9 (⿹) 2FF9 (⿹)
A994[3]:173 E7F2 () 2FFA (⿺) 2FFA (⿺)
A995 E7F3 () 2FFB (⿻) 2FFB (⿻)
FE50 E815 () 2E81 (⺁) 2E81 (⺁)
FE51 E816 () E816 () 20087 (𠂇)
FE52 E817 () E817 () 20089 (𠂉)
FE53 E818 () E818 () 200CC (𠃌)
FE54 E819 () 2E84 (⺄) 2E84 (⺄)
FE55 E81A () 3473 (㑳) 3473 (㑳)
FE56 E81B () 3447 (㑇) 3447 (㑇)
FE57 E81C () 2E88 (⺈) 2E88 (⺈)
FE58 E81D () 2E8B (⺋) 2E8B (⺋)
FE59 E81E () E81E () 9FB4 (龴)
FE5A E81F () 359E (㖞) 359E (㖞)
FE5B E820 () 361A (㘚) 361A (㘚)
FE5C E821 () 360E (㘎) 360E (㘎)
FE5D E822 () 2E8C (⺌) 2E8C (⺌)
FE5E E823 () 2E97 (⺗) 2E97 (⺗)
FE5F E824 () 396E (㥮) 396E (㥮)
FE60 E825 () 3918 (㤘) 3918 (㤘)
FE61 E826 () E826 () 9FB5 (龵)
FE62 E827 () 39CF (㧏) 39CF (㧏)
FE63 E828 () 39DF (㧟) 39DF (㧟)
FE64 E829 () 3A73 (㩳) 3A73 (㩳)
FE65 E82A () 39D0 (㧐) 39D0 (㧐)
FE66 E82B () E82B () 9FB6 (龶)
FE67 E82C () E82C () 9FB7 (龷)
FE68 E82D () 3B4E (㭎) 3B4E (㭎)
FE69 E82E () 3C6E (㱮) 3C6E (㱮)
FE6A E82F () 3CE0 (㳠) 3CE0 (㳠)
FE6B E830 () 2EA7 (⺧) 2EA7 (⺧)
FE6C E831 () E831 () 215D7 (𡗗)
FE6D E832 () E832 () 9FB8 (龸)
FE6E E833 () 2EAA (⺪) 2EAA (⺪)
FE6F E834 () 4056 (䁖) 4056 (䁖)
FE70 E835 () 415F (䅟) 415F (䅟)
FE71 E836 () 2EAE (⺮) 2EAE (⺮)
FE72 E837 () 4337 (䌷) 4337 (䌷)
FE73 E838 () 2EB3 (⺳) 2EB3 (⺳)
FE74 E839 () 2EB6 (⺶) 2EB6 (⺶)
FE75 E83A () 2EB7 (⺷) 2EB7 (⺷)
FE76 E83B () E83B () 2298F (𢦏)
FE77 E83C () 43B1 (䎱) 43B1 (䎱)
FE78 E83D () 43AC (䎬) 43AC (䎬)
FE79 E83E () 2EBB (⺻) 2EBB (⺻)
FE7A E83F () 43DD (䏝) 43DD (䏝)
FE7B E840 () 44D6 (䓖) 44D6 (䓖)
FE7C E841 () 4661 (䙡) 4661 (䙡)
FE7D E842 () 464C (䙌) 464C (䙌)
FE7E E843 () E843 () 9FB9 (龹)
FE80 E844 () 4723 (䜣) 4723 (䜣)
FE81 E845 () 4729 (䜩) 4729 (䜩)
FE82 E846 () 477C (䝼) 477C (䝼)
FE83 E847 () 478D (䞍) 478D (䞍)
FE84 E848 () 2ECA (⻊) 2ECA (⻊)
FE85 E849 () 4947 (䥇) 4947 (䥇)
FE86 E84A () 497A (䥺) 497A (䥺)
FE87 E84B () 497D (䥽) 497D (䥽)
FE88 E84C () 4982 (䦂) 4982 (䦂)
FE89 E84D () 4983 (䦃) 4983 (䦃)
FE8A E84E () 4985 (䦅) 4985 (䦅)
FE8B E84F () 4986 (䦆) 4986 (䦆)
FE8C E850 () 499F (䦟) 499F (䦟)
FE8D E851 () 499B (䦛) 499B (䦛)
FE8E E852 () 49B7 (䦷) 49B7 (䦷)
FE8F E853 () 49B6 (䦶) 49B6 (䦶)
FE90 E854 () E854 () 9FBA (龺)
FE91 E855 () E855 () 241FE (𤇾)
FE92 E856 () 4CA3 (䲣) 4CA3 (䲣)
FE93 E857 () 4C9F (䲟) 4C9F (䲟)
FE94 E858 () 4CA0 (䲠) 4CA0 (䲠)
FE95 E859 () 4CA1 (䲡) 4CA1 (䲡)
FE96 E85A () 4C77 (䱷) 4C77 (䱷)
FE97 E85B () 4CA2 (䲢) 4CA2 (䲢)
FE98 E85C () 4D13 (䴓) 4D13 (䴓)
FE99 E85D () 4D14 (䴔) 4D14 (䴔)
FE9A E85E () 4D15 (䴕) 4D15 (䴕)
FE9B E85F () 4D16 (䴖) 4D16 (䴖)
FE9C E860 () 4D17 (䴗) 4D17 (䴗)
FE9D E861 () 4D18 (䴘) 4D18 (䴘)
FE9E E862 () 4D19 (䴙) 4D19 (䴙)
FE9F E863 () 4DAE (䶮) 4DAE (䶮)
FEA0 E864 () E864 () 9FBB (龻)

字节结构[编辑]

GB 18030包含三种长度的编码:单字节的ASCII、双字节的GBK(略带扩展)、以及用于填补所有Unicode码位的四字节UTF区段。GBK双字节部分通过查表定义,而四字节部分则根据之前两个部分没有提到的通用字符集码位顺序填补。由于和GBK兼容,GB 18030在搜索ASCII字符时也需要使用特别代码进行判断。

GB 18030编码[4]:3[5]:252[6]
GB 18030 码位 Unicode[a]
字节1(最高位) 字节2 字节3 字节4
007F 128 0000007F
80 错误[b]
81FE 40FE 除去 7F[c] 23,940 0080FFFF 除去 D800DFFF[d]
8184 3039 81FE 3039 39,420
85 — (12,600) (未来字符拓展)
868F — (126,000) (未来汉字拓展)
D800DFFF[e]
90E3 3039 81FE 3039 1,048,576 1 000010 FFFF
E4FC — (315,000) (未来标准拓展)
FDFE — (25,200) (用户造字区域)
FF 错误
总计 1,112,064

一、二字节区段基本就是GBK编码,另外加上了专门的欧元字符、竖排版本的标点符号,以及造字区对Unicode造字区的对应。四字节区段可以视作两段形似GBK二字节区段结构的部分,每段的第一字节可以为0x81到0xFE,第二字节为0x30到0x39。由于结构类似,能够安全于GBK的字符串搜索程序对于GB 18030来说也基本安全(正如基于字节英语byte-oriented的搜索程序对于EUCUTF-8也基本安全一般。)

四字节区段总共可以表达1,587,600(126×10×126×10)种字符,足以覆盖Unicode的1,112,064(17×65536 − 2048个代理对)个有效码位。

由于四字节区段通过填空定义,要写出处理这段转换的程序需要同时知道GBK的覆盖范围,并不简单:

U+00DE (Þ) → 81 30 89 37
U+00DF (ß) → 81 30 89 38
U+00E0 (à) → A8 A4
U+00E1 (á) → A8 A2
U+00E2 (â) → 81 30 89 39
U+00E3 (ã) → 81 30 8A 30

WHATWGW3C的GB 18030实现通过一张“位置偏移表”记录GB 18030四字节区中连续的几块碎片,以便高效处理转换。[8]ICU[6]和glibc也都对大块连续的区域使用了类似的策略。

版本[编辑]

参见[编辑]

注釋[编辑]

  1. ^ 包含66个“非字符”
  2. ^ 虽然两个版本的GB 18030都认为此码位不正确(指正式发布的,GB 18030-2000的报批稿却同时有单双字节欧元[7]),但是ICU的定义错误称其为有效码位。出于GBK兼容性考虑,WHATWG的GBK/GB 18030二合一解码器将此字节视作欧元符号。
  3. ^ 参见汉字内码扩展规范条目细分。
  4. ^ 上一行的码位使用二字节GBK编码,下一行的码位按照顺序以四字节编码补全覆盖面。此段最后一个实际用上的编码为U+FFFF的84 31 A4 39(2005版239页),不过划区时画到了84 39 FE 39
  5. ^ 这些为代理对字符英语surrogate code point,在UTF-16之外没有实际意义。

参考资料[编辑]

  1. ^ Encoding Standard # gb18030-index. WHATWG. [2016-09-11]. 
  2. ^ Group:GBK外字. GlyphWiki. [11 September 2016]. 
  3. ^ 3.0 3.1 Lunde, Ken. CJKV Information Processing. O'Reilly Media, Inc. December 2008 [11 September 2016]. ISBN 978-0-596-51447-1. 
  4. ^ Standardization Administration of China (SAC). GB 18030-2005: Information Technology—Chinese coded character set. 2005-11-18. 
  5. ^ Standardization Administration of China (SAC). GB 18030-2000: Information Technology—Chinese coded character set for information interchange — Extension for the basic set. 2000-03-17. 
  6. ^ 6.0 6.1 Authoritative mapping table between GB18030-2000 and Unicode. ICU – International Components for Unicode. 2001-02-21. Accessed 2016-09-04.
  7. ^ GB 18030-2000报批稿 (PDF). 
  8. ^ Encoding Standard # gb18030-index. WHATWG. [2016-09-24]. 

外部連結[编辑]