【编码格式的区别】
写网页等常用到的编码方式主要有utf-8、gbk、gb2312等。
这三种编码都支持中文显示。如果网页包含有中文内容而没指定编码方式,中文内容将有可能显示乱码。
【区别】
- UTF-8是国际编码,包含欧美的所有字符和亚洲的大部分字符,中文字符则包含简繁。
- GB2312和GBK都是中文编码,GBK是GB2312的超集
gb2312包含的汉字并不多,所以后来就有gbk的出现了。gbk包含大部分的汉字,并且包含了big5(台湾常用的编码)中的所有的繁体字体(但两者的繁体字体并不兼容)。
但由于gb2312、gbk到后来的gb18030,都是扩展ACSII而来的,而要根本解决中文问题,就不能只是从扩展入手,所以后来就出现了unicode和UTF。
unicode分为UCS-2、UCS-4,目前常用的是UCS-2是用2个字节为字符编码,可以表示的数为2^16=65535,基本可以表示欧美和大部分亚洲汉字,并且因为UCS-2是双字节的所以每个汉字或英文都是由1个unicode构成,那拆字和统计字数比ASCII方便了很多。似乎unicode是比较完美了,可是它却有一个很致命的缺点,就是并不能和ASCII兼容。ASCII字符是单个字节的,比如"A"的ASCII是65。而Unicode是双字节的,比如"A"的Unicode是0065,这就造成了一个非常大的问题:以前处理ASCII的那套机制不能被用来处理Unicode了 。另一个更加严重的问题是,C语言使用''作为字符串结尾,而Unicode里恰恰有很多字符都有一个字节为0,这样一来,C语言的字符串函数将无法正常处理Unicode,除非把世界上所有用C写的程序以及他们所用的函数库全部换掉 。
于是出现了utf,它是将Unicode编码规则和计算机的实际编码对应起来的一个规则。现在流行的UTF有2种:UTF-8和UTF-16。UTF-8是以8位为单元对UCS进行编码,它定义了一种"区间规则",这种规则可以和ASCII编码保持最大程度的兼容 。
UTF-8是Unicode的实现方式之一。
他们的关系如下:
ACSII-->gb2312--->gbk--->gb18030.各种编码都向下兼容,即gb2312兼容ACSII、gbk又
兼容GB2312。

浙公网安备 33010602011771号