UTF-8是什么?
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
UTF-8有什么作用
能够使计算机实现跨语言、跨平台的文本转换及处理。
UTF的出现
(个人理解)由于因为在所有字符集中,最知名的被称为ASCII(它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等)以及控制字符(退格、响铃)组成)的7位字符集是美国人以美国英语所设计的字符集,在处理我们东方语言出现问题(如汉语拼音)。因此,又创建了一些包括255个字符的由ASCII扩展的字符集。但是不能支持汉语及非洲语言,所以,他们把语言中相似的字符结合起来,不同的语言中,使不同字符代表不同的字,这样只用2个字节就可以编码地球上几乎所有地区的文字。因此,创建了UNICODE。(Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。)由于它没有对Braille,Cherokee, Ethiopic, Khmer, Mongolian, Hmong, Tai Lu, Tai Mau文字的支持。同时它也不支持如Ahom, Akkadian, Aramaic, BabylonianCuneiform, Balti, Brahmi, Etruscan, Hittite, Javanese, Numidian, Old Persian Cuneiform, Syrian之类的古老文字并且可以用ASCII表示的字符使用UNICODE并不高效,因为UNICODE比ASCII占用大一倍的空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即UTF(Unicode Transformation Format)。
常见的UTF格式有:UTF-7, UTF-7.5, UTF-8,UTF-16, 以及 UTF-32。
UTF-8
-优点:1.可以通过屏蔽位和位移操作快速读写;2.字符串比较时strcmp()和wcsmp()的返回结果相同,因此排版会更容易;3.字节顺序在所有系统中都是一样的。
-缺点:1.无法从UNICODE字符数判断判断出UTF-8文本的字节数,所以产生UTF-7编码;2. UTF-8 在它的表示中使用值100xxxxx的几率超过50%, 而现存的实现如ISO 2022, 4873, 6429, 和8859系统,会把它错认为是C1 控制码。因此产生了UTF-7.5编码。
-特点:是对不同范围的字符使用不同长度的编码。对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同。UTF-8编码的最大长度是6个字节。
UTF-16
UTF-16编码以16位无符号整数为单位。
UTF-32
UTF-32编码以32位无符号整数为单位。
GBK
GBK中文名:汉字编码字符集;全称《汉字内码扩展规范》。