原文:http://www.cnblogs.com/meil/archive/2007/01/31/635871.html51Testing软件测试网Y r'l3i_A-C e

!H9[WA"N%FMau;Q9op#@Z0 GB2312 字符集 (http://www.herongyang.com)

W5NtbK s0 51Testing软件测试网j_m1b.P)DuUN+e

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

MCC/l)o6V0 51Testing软件测试网+v0au}e

GB2312 字符集 (character set) 只收录简化字汉字,以及一般常用字母和符号,主要通行于中国大陆地区和新加坡等地。

)Rl6p ZEh9e0 51Testing软件测试网S1ya/huv8NJnI

GB2312 共收录有 7445 个字符,其中简化汉字 6763 个,字母和符号 682 个。

9\*|H{*p? S([0 51Testing软件测试网c"cO-il,y3eNF

GB2312 将所收录的字符分为 94 个区,编号为 01 区至 94 区;每个区收录 94 个字符,编号为 01 位至 94 位。GB2312 的每一个字符都由与其唯一对应的区号和位号所确定。例如:汉字“啊”,编号为 16 区 01 位。

:\NV4J6k#GX pt.@0

Ow"ryb0GB2312 字符集的区位分布表:

bXf'M\\+N)E*n0
  区号    字数    字符类别
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软件测试网a q*mzC9`I]

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

;K$[7jKny/R/V0

GB2312 编码 51Testing软件测试网4I:bp e)s:j ]*|.N

51Testing软件测试网 yy2L'_U8T

GB2312 原始编码 (encoding) 是对所收录的每个字符都用两个字节 (byte) 表示。第一字节为“高字节”,由字符的区号值加上 32 而形成;第二字节为“低字节”,由字符的位号值加上 32 而形成。例如:汉字“啊”,编号为 16 区 01 位。它的高字节为 16 + 32 = 48 (0x30),低字节为 01 + 32 = 33 (0x21),合并而成的编码为 0x3021。 51Testing软件测试网E"X*?AD|

4A+c3G$rK?,a Yh0在区位号值上加 32 的原因大慨是为了避开低值字节区间。

6h0E/@b"`2Re&vH0 51Testing软件测试网EIQQ"z-I~!Pw|

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

(t8b!jd?e*n;[0 51Testing软件测试网EX)wr.T7`%U,xW

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

@Eu-gE{'W:~1?8C0 51Testing软件测试网&@3s8|5`*US%Z:o U

这本手册列出了 GB2312 的全部字符和它们的编码。

K5xjL7_TV@1V)H0

GB2312 与 Unicode 的关系 51Testing软件测试网#PZ5l*DuZ%E,C

51Testing软件测试网4E:}X:b,]t8r }

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

3E?Ed:F0

:y Q:z!n_;mr,R^C/O,D0但是 GB2312 编码和 Unicode 编码确没有什么相同之处。同一个汉字,它的 GB2312 编码和 Unicode 编码确毫不相同。例如:汉字“啊”,它的 GB2312 编码为 0xB0A1,但是它的 Unicode 编码为 0x554A。 51Testing软件测试网x,P(RDe:L3e-r

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

B"X"C.C.|xQ0