background image

1  

章 基础知识

1.1 介绍

1.1.1 iso8859-1 

属于单字节编码,最多能表示的字符范围是 0-255,应用于英文系列。比如,字母 a 的编
码为 0x61=97。
ISO 8859-1 ,即俗称的 latin-1,西欧字母。其中前半段是 ASCII 码。
很明显,iso8859-1 编码表示的字符范围很窄,无法表示中文字符。但是,由于是单字节编
码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用 iso8859-1 编码来表示。
而且在很多协议上,默认使用该编码。比如,虽然"中文"两个字不存在 iso8859-1 编码,以
gb2312 编码为例,应该是"d6d0 cec4"两个字符,使用 iso8859-1 编码的时候则将它拆开为
4 个字节来表示:"d6 d0 ce c4"(事实上,在进行存储的时候,也是以字节为单位处理
的)。而如果是 UTF 编码,则是 6 个字节"e4 b8 ad e6 96 87"。很明显,这种表示方法还需
要以另一种编码为基础。

1.1.2 GB

 

系列

GB 系列这就是汉子的国标码,专门用来表示汉字,是双字节编码,而英文字母和

iso8859-1 一致(兼容 iso8859-1 编码)。其中 gbk 编码能够用来同时表示繁体字和简体字,
而 gb2312 只能表示简体字,gbk 是兼容 gb2312

 

编码的。

GB2312-80 是在国内计算机汉字信息技术发展初始阶段制定的,其中包含了大部

分常用的一、二级汉字,和 9 区的符号。该字符集是几乎所有的中文系统和国际化的软件
都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位 0xa1-0xfe,低
位也是 0xa1-0xfe;汉字从 0xb0a1 开始,结束于 0xf7fe;

GBK 是 GB2312-80 的扩展,是向上兼容的。它包含了 20902 个汉字,其编码范

围是 0x8140-0xfefe,剔除高位 0x80 的字位。其所有字符都可以一对一映射到 Unico
de 2.0,也就是说 JAVA 实际上提供了 GBK 字符集的支持。这是现阶段 Windows 和其
它一些中文操作系统的缺省字符集,但并不是所有的国际化软件都支持该字符集,感觉
是他们并不完全知道 GBK 是怎么回事。值得注意的是它不是国家标准,而只是规范。随
着 GB18030-2000 国标的发布,它将在不久的将来完成它的历史使命。

GB18030-2000(GBK2K) 在 GBK 的基础上进一步扩展了汉字,增加了藏、蒙等少

数民族的字形。GBK2K 从根本上解决了字位不够,字形不足的问题。它有几个特点: