原文:http://www.cnblogs.com/meil/archive/2007/01/31/635871.html
T2]'yG P8UM@ o0
$]#Ol:whRY/y9Nka0GB2312 字符集 (http://www.herongyang.com)51Testing软件测试网%]|x8?IkX'N

"d-gt/wfRl0GB2312 是汉字字符集和编码的代号,中文全称为“信息交换用汉字编码字符集”,由中华人民共和国国家标准总局发布,一九八一年五月一日实施。GB 是“国标” 二字的汉语拼音缩写。

n2Q-RN/K!k_/`%d^0

:@8d:N x"k0GB2312 字符集 (character set) 只收录简化字汉字,以及一般常用字母和符号,主要通行于中国大陆地区和新加坡等地。51Testing软件测试网DtZ&c9A9P2tF

LX"G&jT} wT0GB2312 共收录有 7445 个字符,其中简化汉字 6763 个,字母和符号 682 个。51Testing软件测试网 K EX ]K k1d3lr

51Testing软件测试网!i2eq9[V{ML

GB2312 将所收录的字符分为 94 个区,编号为 01 区至 94 区;每个区收录 94 个字符,编号为 01 位至 94 位。GB2312 的每一个字符都由与其唯一对应的区号和位号所确定。例如:汉字“啊”,编号为 16 区 01 位。51Testing软件测试网-f$X:~3p&B Z

51Testing软件测试网"K^g_K)x@q6Xb

GB2312 字符集的区位分布表:

7?A7M S'L0P eKI0
区号    字数    字符类别
01      94    一般符号
02      72    顺序号码
03      94    拉丁字母
04      83    日文假名
05      86    Katakana
06      48    希腊字母
07      66    俄文字母
08      63    汉语拼音符号
09      76    图形符号
10-15            备用区
16-55    3755    一级汉字,以拼音为序
56-87    3008    二级汉字,以笔划为序
88-94            备用区
51Testing软件测试网N!Ax7V3X2f8Y

这本手册列出了 GB2312 的全部字符和它们的区位号。

3]su-v0H0

GB2312 编码51Testing软件测试网 G,s*sb%tW Y

.ySX&Mz3iLK2D/n0GB2312 原始编码 (encoding) 是对所收录的每个字符都用两个字节 (byte) 表示。第一字节为“高字节”,由字符的区号值加上 32 而形成;第二字节为“低字节”,由字符的位号值加上 32 而形成。例如:汉字“啊”,编号为 16 区 01 位。它的高字节为 16 + 32 = 48 (0x30),低字节为 01 + 32 = 33 (0x21),合并而成的编码为 0x3021。51Testing软件测试网._6r_+\v-xv!]z

x$xo0fIlX0u2j,e0在区位号值上加 32 的原因大慨是为了避开低值字节区间。51Testing软件测试网4o&G+IT2a7gA

*i/m YO K g6W;RS}0由于 GB2312 原始编码与 ASCII 编码的字节有重叠,现在通行的 GB2312 编码是在原始编码的两个字节上各加 128 修改而形成。例如:汉字“啊”,编号为 16 区 01 位。它的原始编码为 0x3021,通行编码为 0xB0A1。

IV9?m-rxa8bd051Testing软件测试网[ qFg8T w

如果不另加说明,GB2312 常指这种修改过的编码。

W.nD.R8U0

Y'AV"R$J)ddKiS0这本手册列出了 GB2312 的全部字符和它们的编码。

P+_~1q1[E0@8W%~w0

GB2312 与 Unicode 的关系51Testing软件测试网(nb ` Zr

51Testing软件测试网-O"YTN^U?"Q

GB2312 字符集是 Unicode 字符集的一个子集。这也就是说,GB2312 所收录的每一个字符都收录在 Unicode 之中。

Gc~$Hd0

8P7[I{ ?/Rrk0但是 GB2312 编码和 Unicode 编码确没有什么相同之处。同一个汉字,它的 GB2312 编码和 Unicode 编码确毫不相同。例如:汉字“啊”,它的 GB2312 编码为 0xB0A1,但是它的 Unicode 编码为 0x554A。51Testing软件测试网x5X Ex4\{7L

51Testing软件测试网PI,qg*tRZ

这本手册为 GB2312 的每一个字符列出了它所对应的 Unicode 编码和 UTF-8 (Unicode Transformation Format - 8-bit) 编码。

1^YE(]D-o1p-gd0V(A0