GBK与utf-8的区别

简介:
GBK与UTF-8的区别
先说GB2312
GB2312是GBK的子集,GBK是GB18030的子集。
GB2312编码大约包含6000多汉字(不包括特殊字符),编码范围为第一位b0-f7,第二位编码范围为a1-fe(第一位为cf时,第二位为a1-d3),计算一下汉字个数为6762个汉字。当然还有其他的字符。包括控制键和其他字符大约7573个字符编码
GBK是包括中日韩字符的大字符集合,GBK编码是对GB2312编码的扩充,容纳的汉字更多,但仅仅是扩充,没有质的变化。保留了所有GB2312编码,在此基础上进行编码范围的扩充.容纳(包含特殊字符)共22014个字符编码。

GB18030编码是在GBK编码基础上的扩充,因为汉字更多,仅仅使用两位编码已经不能容纳要求的汉字,所以采用了2\4位混和的办法,可以支持更多的汉字编码。并且保留了原有的GBK 2字节编码兼容GB2312和gbk编码的文件。大概容纳55657个编码(包含特殊字符)。

重点:GB2312能完美的支持简体中文和英文,一个中文文字占用2个字节,一个英文字母同样占用2个字节。

问题产生了:在没有安装IE的简体中文支持的电脑上看GB2312编码的网页,其中中文都会是乱码,比如一位英国人在伦敦浏览你的网页,看到的除了英文字母正常外其他的都会是乱七八糟,就像火星文。

再说UTF-8

UTF-8是unicode,可以看作是大字符集,它包含了大部分文字的编码。为表达更多的文字,UTF-8采用2/3混编的方式。目前所容纳的汉字范围小于GBK编码。

重点:UTF-8能完美的支持英文和中文,甚至其他文,一个中文文字占用3个字节,一个英文字母同样占用1个字节。

使用UTF-8的一个最大好处是其他地区的用户(如美国、印度、台湾)无需安装IE的简体中文支持就能正常观看你的文字而不会出现乱码。通常网络传输也是用UTF-8编码。

综上:根据你的网站的内容和浏览的对象以及对数据的储存空间的权衡,就很好做出编码选择了。

目录
相关文章
|
关系型数据库 Oracle
|
XML 数据格式
|
Java
(转载)UTF-8和GBK的编码方式的部分知识:重要
GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。 至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。
913 0
|
JavaScript
字符编码(1)——Unicode,utf-8
字符编码 编码是一个将一组Unicode字符转换业个字节序列的过程。而解码是将一个编码字节序列转换为一组Unicode字符的过程。   Unicode字符是什么? Unicode字符集可以简写为UCS,也就是Unicode charactor set Unicode编码是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。
778 0
|
存储 算法 Java
Java编码ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16 编码方式详解
Java编码ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16 编码方式详解
435 0
|
Web App开发 JavaScript Java
编码问题 UTF-8 & GBK
记一次奇怪的编码问题。 * Meta Element vs Response Header * Meta 的作用? * 一个细节 * 细节对编码的影响 ## Meta Element vs Response Header 一个 GBK 编码页面,使用 meta 指定页面编码和使用 response header 指定页面编码。哪个优先级比较高? ###
2431 0
|
C# Windows 存储
C#中Encoding.Unicode与Encoding.UTF8的区别
原文地址:点击打开链接 今天在园子首页看到一篇博文-简单聊下Unicode和UTF-8,从中知道了UTF-8是Unicode的一种实现方式: Unicode只是给这世界上每个字符规定了一个统一的二进制编号,并没有规定程序该如何去存储和解析。 可以说UTF-8是Unicode实现方式之一... 在闪存中记录这个收获时,@飞鸟_Asuka在回复中提了一个很好的问题:“那么在选择编码方式的时候为
1561 0

热门文章

最新文章