一、几种常见编码集之间的关系
信息交换用汉字编码字符集 基本集(又称为GB0),由中国国家标准总局1980年发布。GB 2312-80只收录了6763个汉字,未能覆盖繁体中文字、部分人名、方言、古汉语等方面出现的罕用字。
整个字符集分成94个区,每区有94个位。每个区位上只有一个字符,因此可用所在的区和位来对汉字进行编码,称为区位码(GB2312)(一个四位的十进制数)。
把换算成十六进制的区位码加上2020H,就得到国标码(一个四位十六进制数)。
国标码加上8080H,就得到常用的计算机机内码(俗称汉字内码)或称GBK码。
在使用GB2312的程序中,通常采用EUC储存方法,以便兼容于ASCII。浏览器编码表上的“GB2312”,通常都是指“EUC-CN”表示法。每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”(也称“区字节)”,第二个字节称为“低位字节”(也称“位字节”)。“高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上 0xA0)。例如“啊”字在大多数程序中,会以两个字节,0xB0(第一个字节) 0xA1(第二个字节)储存。(与区位码对比:0xB0=0xA0+16,0xA1=0xA0+1)。