Pages

Tuesday, 20 November 2012

字符中编码GBK与UTF-8的一些区别

这两种编码经常出现在一些网站开发程序中,往往会提供给我们两种选择,一种是GBK的,另一种是UTF-8的,按照我的理解就是GBK是国内 的,UTF8是国际的。其实作为不搞开发的人员来讲,这样理解并不为过,并且还好记,想让网站支持更多语言就安装UTF8,想支持中文更好就安装GBK。 下面经过查阅资料,把这两种编码做个简单的解释:
GBK的子集GB2312
GB2312是GBK的子集,GBK是GB18030的子集。GB2312编码大约包含6000多汉字(不包括特殊字符),编码范围为第一位b0- f7,第二位编码范围为a1-fe(第一位为cf时,第二位为a1-d3),计算一下汉字个数为6762个汉字。当然还有其他的字符。包括控制键和其他字 符大约7573个字符编码。
GBK是包括中日韩字符的大字符集合,GBK编码是对GB2312编码的扩充,容纳的汉字更多,但仅仅是扩充,没有质的变化。保留了所有GB2312编码,在此基础上进行编码范围的扩充.容纳(包含特殊字符)共22014个字符编码。
GB18030编码是在GBK编码基础上的扩充,因为汉字更多,仅仅使用两位编码已经不能容纳要求的汉字,所以采用了24位混和的办法,可以支持更 多的汉字编码。并且保留了原有的GBK 2字节编码兼容GB2312和gbk编码的文件。大概容纳55657个编码(包含特殊字符)。
GB2312编码重点总结如下
GB2312能完美的支持简体中文和英文,一个中文文字占用2个字节,一个英文字母同样占用2个字节。
问题产生了:在没有安装IE的简体中文支持的电脑上看GB2312编码的网页,其中中文都会是乱码,比如一位英国人在伦敦浏览你的网页,看到的除了英文字母正常外其他的都会是乱七八糟,就像火星文。
UTF-8
UTF-8是unicode,可以看作是大字符集,它包含了大部分文字的编码。为表达更多的文字,UTF-8采用2/3混编的方式。目前所容纳的汉字范围小于GBK编码。
UTF-8重点总结如下
UTF-8能完美的支持英文和中文,甚至其他文,一个中文文字占用3个字节,一个英文字母同样占用1个字节。
使用UTF-8的一个最大好处是其他地区的用户(如美国、印度、台湾)无需安装IE的简体中文支持就能正常观看你的文字而不会出现乱码。通常网络传输也是用UTF-8编码。
综上所述:根据您的网站的内容和浏览的对象以及对数据的储存空间的权衡,就很好做出编码选择了.