Windix‘s Weblog Reloaded: 汉字编码研究

来源:百度文库 编辑:神马文学网 时间:2024/04/29 04:23:20
Windix‘s Weblog Reloaded
God only help ones who help themselves.
« 为FeedOnFeeds增加安全验证 |Main |Xoops »
March 26, 2004
汉字编码研究

GB2312
范围: 0xA1A1 - 0xFEFE
汉字范围: 0xB0A1 - 0xF7FE
GBK
范围: 0x8140 - 0xFEFE
BIG5
范围: 0xA140 - 0xF9FE, 0xA1A1 - 0xF9FE
详细信息:
编码 第一个字节 第二个字节 第三个字节 第四个字节
GB2312 0xB0 - 0xF7 0xA0 - 0xFE
GBK 0x81 - 0xFE 0x40 - 0xFE
GB18030 的双字节 0x81 - 0xFE 0x40 - 0x7E, 0x80 - 0xFE
GB18030 的四字节 0x81 - 0xFE 0x30 - 0x39 0x81 - 0xFE 0x30 - 0x39
GB2312:
GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。
GB2312收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,习惯上称第一个字节为“高字节”,第二个字节为“低字节”。GB2312-80包含了大部分常用的一、二级汉字,和9区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe;汉字从0xb0a1开始,结束于0xf7fe。
GB2312将代码表分为94个区,对应第一字节(0xa1-0xfe);每个区94个位(0xa1-0xfe),对应第二字节,两个字节的值分别为区号值和位号值加32(2OH),因此也称为区位码。01-09区为符号、数字区,16-87区为汉字区(0xb0-0xf7),10-15区、88-94区是有待进一步标准化的空白区。GB2312将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。故而GB2312最多能表示6763个汉字。
GB2312的编码范围为2121H-777EH,与ASCII有重叠,通行方法是将GB码两个字节的最高位置1以示区别。
BIG5:
每个字由两个字节组成,其第一字节编码范围为0xA1~0xF9,第二字节编码范围为0x40~0x7E与0xA1~0xFE,总计收入13868个字(包括5401个常用字、7652 个次常用字、7个扩充字、以及808个各式符号),其中可以大致划分为以下几个字区:
第一字节 第二字节 字区 制定
A1..A2 40..7E, A1..FE 各种符号区 1984
A3 40..7E, A1..BF 各种符号区 (包括标点符号、ASCII 全角符号、注音符号等) 1984
A3 E1 欧元符号 CP950
A4..C5 40..7E, A1..FE 常用字区 1984
C6 40..7E 常用字区 1984
C6 A1..FE 罕用符号区 倚天
C7 40..7E, A1..FE 罕用符号区 (包括日文、俄文等) 倚天
C8 40..7E, A1..D3 罕用符号区 (包括俄文、输入法特殊符号等) 倚天
C9..F8 40..7E, A1..FE 次常用字区 1984
F9 40..7E, A1..D5 次常用字区 1984
F9 D6..DC 七个扩充字 倚天
F9 DD..FE 格符号区 倚天
扩充字 BIG5 码 Unicode 码 BIG5_1984 的同义字
碁 0xF9D6 0x88CF 棋
0xF9D7 0x92B9
0xF9D8 0x7CA7
墙 0xF9D9 0x58BB 墙
恒 0xF9DA 0x6052 恒
妆 0xF9DB 0x7881 妆
娴 0xF9DC 0x5AFA 娴
GBK:
起源
GB2312-80 仅收汉字 6763 个,这大大少于现有汉字,随着时间推移及汉字文化的不断延伸推广,有些原来很少用的字,现在变成了常用字,例如:朱鎔基的“鎔”字,未收入 GB2312-80,现在大陆的报业出刊只得使用(金+容)、(金容)、(左金右容)等来表示,形式不一而同,这使得表示、存储、输入、处理都非常不方便,对于搜索引擎等软件的构造来说也不是好消息,而且这种表示没有统一标准。从我们对人民日报 98 年数据的处理过程中,得出这样的经验:回填外字最困难的就是如何得到这种表示方法的集合。
为了解决这些问题,以及配合 UNICODE 的实施,全国信息技术化技术委员会于 1995 年 12 月 1 日《汉字内码扩展规范》。GBK 向下与 GB2312 完全兼容,向上支持 ISO-10646 国际标准,在前者向后者过渡过程中起到的承上启下的作用。
GBK是GB2312-80的扩展,是向上兼容的。它包含了20902个汉字,其编码范围是0x8140-0xfefe,剔除高位0x80的字位。其所有字符都可以一对一映射到Unicode2.0。
字集
GBK 共收入21886个汉字和图形符号,包括:
GB2312 中的全部汉字、非汉字符号。 BIG5 中的全部汉字。 与 ISO-10646 相应的国家标准 GB13000 中的其它 CJK 汉字,以上合计 20902 个汉字。 其它汉字、部首、符号,共计 984 个。
GBK 编码区分三部分:
汉字区 包括 GBK/2:OXBOA1-F7FE, 收录 GB2312 汉字 6763 个,按原序排列; GBK/3:OX8140-AOFE,收录 CJK 汉字 6080 个; GBK/4:OXAA40-FEAO,收录 CJK 汉字和增补的汉字 8160 个。
图形符号区 包括 GBK/1:OXA1A1-A9FE,除 GB2312 的符号外,还增补了其它符号 GBK/5:OXA840-A9AO,扩除非汉字区。
用户自定义区 即 GBK 区域中的空白区,用户可以自己定义字符。
編碼
GBK 亦采用双字节表示,总体编码范围为 8140-FEFE 之间,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 XX7F 一条线。
微软公司自 Windows 95 简体中文版开始支持 GBK 代码,標準叫法是 Windows codepage 936,也叫做 GBK(國標擴展),它也是 8-bit 的變長編碼。據我所知 GBK 從來沒成爲過正式的國家標準,只不過因爲 Windows 的普及,它已經成爲事實上的標準了。但目前的多数搜索引擎都不能很好地支持 GBK 汉字。
from:http://www.unihan.com.cn/cjk/ana17.htm
由前电子部科技质量司和国家技术监督局标准化司于1995年12月颁布的指导性规范。(GBK的 K是“扩展”的汉语拼音第一个字母)
GBK作为非 UCS ( ISO/IEC 10646 ) 体系的代码页,适用于中文信息的处理、交换、存储、传输、显现、输入和输出。
GBK与国家标准 GB 2312-80 信息处理交换码所对应的、事实上的内码标准兼容;同时,在字汇一级支持 ISO/IEC 10646-1 和GB 13000-1 的全部中日韩 (CJK) 汉字(20902字)。GBK除了包含GB2312-80 和GB12345-90中包括的全部非汉字符号外,还涵盖我国台湾地区中文标准交换码TCA-CNS 11643 -92 ( 与其对应的内码为Big5;以下用Big5泛指二者。) 中的绝大多数符号。
从Windows95中文版起,Windows NT 3.51, 4.0, Windows2000, Windows CE, Linux已经全面支持GBK,起到了从GB 2312向Unicode过渡的承上启下的重要作用。
GBK尽管在字汇一级支持CJK,是目前最大的Code Page ;它在体系结构、代码空间上,仍然是完全不同于ISO/IEC 10646 和Unicode的。
GB18030:
GB18030-2000(GBK2K)在GBK的基础上进一步扩展了汉字,增加了藏、蒙等少数民族的字形。GBK2K从根本上解决了字位不够,字形不足的问题。它有几个特点:
它并没有确定所有的字形,只是规定了编码范围,留待以后扩充。
编码是变长的,其二字节部分与GBK兼容;四字节部分是扩充的字形、字位,其编码范围是首字节0x81-0xfe、二字节0x30-0x39、三字节0x81-0xfe、四字节0x30-0x39。
它的推广是分阶段的,首先要求实现的是能够完全映射到Unicode3.0标准的所有字形。
它是国家标准,是强制性的。
Posted by windix at March 26, 2004 01:47 AM
Trackback Pings
TrackBack URL for this entry:
[UTF-8] http://www.douzi.org/weblog/trackback.php?id=23&charset=UTF-8
[GB2312] http://www.douzi.org/weblog/trackback.php?id=23&charset=GB2312
[BIG5] http://www.douzi.org/weblog/trackback.php?id=23&charset=BIG5
Comments
中文信息编码标准,常用的是GB2312-1980,GB12345,GB13000(GBK),以及最新标准GB18030。
GB2312的汉字编码规则为:第一个字节的值在0xB0到0xF7之间,第二个字节的值在0xA0到0xFE之间。
GB12345和GB13000是对GB2312-1980的扩充,所有已经包含在GB2312 中的汉字编码不变,另外增加更多的码位。其编码规则大致为:第一个字节的值在0x81到0xFE之间,第二个字节的值在0x40到0xFE之间。由于GB13000是对GB2312的扩展,所以也被称为GBK。
GB18030 是最新的汉字编码字符集国家标准, 向下兼容 GBK 和 GB2312 标准。 GB18030 编码是一二四字节变长编码。 一字节部分从 0x0~0x7F 与 ASCII 编码兼容。 二字节部分, 首字节从 0x81~0xFE, 尾字节从 0x40~0x7E 以及 0x80~0xFE, 与 GBK标准基本兼容。 四字节部分, 第一字节从 0x81~0xFE, 第二字节从 0x30~0x39, 第三和第四字节的范围和前两个字节分别相同。 四字节部分覆盖了从 0x0080 开始, 除去二字节部分已经覆盖的所有 Unicode 3.1 码位。也就是说, GB18030 编码在码位空间上做到了与 Unicode 标准一一对应,这一点与 UTF-8 编码类似。
常见的GB编码ISO-2202-CN, EUC-CN, HZ,和 GB系列,其中HZ码是为了在英文新闻组中发中文文章由留学生自己发明的,现在已经没有用了.EUC的意思是Extended Unix Code,ISO-2202-CN是7bit,EUC-CN是8bit
Big5是台湾的IIIT1984年发明的,CNS 11643-1992( Chinese National Standard) 是扩展版本,主要大家用的还是big5
Hong Kong GCCS是香港政府为big5加的3049个字,(Government Chinese Character Set) 香港增补字符集(HKSCS)是后来的标准,包括了Big5和ISO10646的编码,所以HKSCS的big5 版是补充了GCCS的增强版,ISO10646是UCS(universal character set),ISO是政府组织 Unicode是电脑业界组织,不过UCS和Unicode的字库一样
推荐看Ken Lunde写的CJKV Information Processing.
编码字数统计:
GB2312 6763个汉字 GB12345 6866个汉字 GBK 21003个汉字 GB18030 27000 Big5 13053 CNS11643 48,027
Posted by:ironarmor at March 13, 2005 02:44 AM
GB和UNICODE的转换关系!
Posted by:xiaoyang at April 5, 2005 08:41 PM
Sponsor:[51aus 无忧澳洲网][51aus 无忧澳洲网 留学][51aus 无忧澳洲网 旅游][51aus 无忧澳洲网 论坛]