4.1)基础知识
4.1.1) GB2312
范围:
0xA1A1--0xFEFE
汉字范围:
0xB0A1--0xF7FE
编码方式:
GB2312规 定"对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示",习惯上称第一个字节为"高字节",第二个字节为"低字节"。
字符集:
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
与ASCII有重叠,通行方法是将GB码两个字节的最高位置1以示区别。
背景知识:
GB2312 码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位 0xa1-0xfe,低位也是0xa1-0xfe;
汉字从0xb0a1开始,结束于0xf7fe。16-87区为汉字区
(
0xb0-0xf7)。故而GB2312最多能表示6763个汉字。
备注:
·
GB2312
的原文还是区位码,从区位码到内码,需要在高字节和低字节上分别加上
A0
。
·
在
DBCS
中,
GB
内码的存储格式始终是
big endian
,即高位在前。
·
GB2312
的两个字节的最高位都是
1
。但符合这个条件的码位只有
128*128=16384
个。所以
GBK
和
GB18030
的低字节最高位都可能不是
1
。不过这不影响
DBCS
字符流的解析:在读取
DBCS
字符流时,只要遇到高位为
1
的字节,就可以将下两个字节作为一个双字节编码,而不用管低字节的高位是什么。
关键词: 中国国家标准,
gb2312,
汉字:
4.1.2)GBK
范围:0×8140 - 0xFEFE
汉字范围:
GBK/2:OXBOA1-F7FE, 收录 GB2312 汉字 6763 个,按原序排列;
GBK/3:OX8140-AOFE,收录 CJK 汉字 6080 个;
GBK/4:OXAA40-FEAO,收录 CJK 汉字和增补的汉字 8160 个。
编码方式:
GBK 亦采用双字节表示,总体编码范围为 8140-FEFE 之间,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 XX7F 一条线。
字符集:
GBK 共收入21886个汉字和图形符号,包括:
GB2312 中的全部汉字、非汉字符号;
BIG5 中的全部汉字;
与 ISO-10646 相应的国家标准 GB13000 中的其它 CJK 汉字;
以上合计 20902 个汉字。
其它汉字、部首、符号,共计 984 个。
背景知识:
GBK 向下与 GB2312 完全兼容,向上支持 ISO-10646 国际标准,是一种过渡时期的编码实现方式。
GBK是GB2312-80的扩展,是向上兼容的。它包含了20902个汉字,其编码范围是0x8140-0xfefe,剔除高位0x80的字位。其所有字符都可以一对一映射到Unicode2.0。
备注:
微软公司自Windows 95 简体中文版开始支持 GBK 代码,标准叫法是 Windows codepage 936,也叫做 GBK(国家标准),它也是 8-bit 的变长编码。据我所知 GBK从来没成为正式的国家标准,只不过因为Windows 的普及,它已经成为事实上的标准了。但目前的多数搜索引擎都不能很好地支持 GBK 汉字。
4.1.3) TW-BIG5:大五码
范围:0xA140 - 0xF9FE, 0xA1A1 - 0xF9FE
编码方式:
每个字由两个字节组 成,其第一字节编码范围为0xA1~0xF9,第二字节编码范围为0×40~0×7E与0xA1~0xFE。
字符集:
总计收入13868个字 (包括5401个常用字、7652 个次常用字、7个扩充字、以及808个各式符号)。
背景知识:
Big5是台湾的IIIT1984年发明的,CNS 11643-1992( Chinese National Standard)是扩展版本,主要大家用的还是big5。BIG5又称大五码或五大码,1984年由台湾财团法人信息工业策进会和五间软件公司宏碁 (Acer)、神通 (MiTAC)、佳佳、零壹 (Zero One)、大众 (FIC)创立,故称大五码。
4.1.4)unicode
国际标准组织于1984年4月成立ISO/IECJTC1/SC2/WG2工作组,针对各国文字、符号进行统一性编码。1991年美国跨国公司成立UnicodeConsortium,并于1991年10月与WG2达成协议,采用同一编码字集。
目前
Unicode
是采用
16
位编码体系,其字符集内容与ISO10646的
BMP(BasicMultilingualPlane)相同。
编码方法:
Unicode
标准始终使用十六进制数字,而且在书写时在前面加上前缀
“U+”
,例如字母
“A”
的编码为
004116
。所以
“A”
的编码书写为
“U+0041”
。
Unicode
编码表
|
|||||||