永发信息网

UTF-8,和Unicode是什么关系? UTF-8的全称又是什么?

答案:3  悬赏:0  手机版
解决时间 2021-04-29 11:32
UTF-8,和Unicode是什么关系? UTF-8的全称又是什么?
最佳答案
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
在所有字符集中,最知名的可能要数被称为ASCII的7位字符集了。它是美国标准信息交换代码(American Standard Code for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成。
但是,由于他是针对英语设计的,当处理带有音调标号(形如汉语的拼音)的亚洲文字时就会出现问题。因此,创建出了一些包括255个字符的由ASCII扩展的字符集。其中有一种通常被称为IBM字符集,它把值为128-255之间的字符用于画图和画线,以及一些特殊的欧洲字符。另一种8位字符集是ISO 8859-1Latin 1,也简称为ISOLatin-1。它把位于128-255之间的字符用于拉丁字母表中特殊语言字符的编码,也因此而得名。欧洲语言不是地球上的唯一语言,因此亚洲和非洲语言并不能被8位字符集所支持。仅汉语字母表(或pictograms)就有80000以上个字符。
但是把汉语、日语和越南语的一些相似的字符结合起来,在不同的语言里,使不同的字符代表不同的字,这样只用2个字节就可以编码地球上几乎所有地区的文字。因此,创建了UNICODE编码。
它通过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1字符。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。
如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节。而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE字符。
UTF-8编码规则:如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。
实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成, 首字节连续的1的个数表示字符编码所需的字节数。
Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。
小结 :用通信理论的思路可以理解为:
unicode是信源编码,对字符集数字化;
utf8是信道编码,为更好的存储和传输。

注:Unicode转换为UTF-8需要的字节数可以根据这个规则计算:如果Unicode小于0x80(Ascii字符),则转换后为1个字节。否则转换后的字节数为Unicode二进制位数减1再除以5。
参考:度女良
全部回答
GB2312的范围比GBK少很多,也就是说所涵盖的中文字符会比GBK格式的少,一旦遇到没办法识别的繁体字或者特殊符号就会乱码。所以一般来说我会选GBK格式来写页面。
至于UTF-8嘛,一般我写java的时候才会用到,这种一般适用于大型系统,或者跨语言系统,跨服务器等情况下使用。也就是说国外的ie浏览器也可以直接浏览到中文,而不需要安装中文语言支持包。
主要是看你的使用范围,还有就是数据库支持那种编码,这个要跟你数据库的编码对应上来,否则一样会存在乱码的情况。

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
星期天晚上8点了,怎么从成都去广汉
下载的视频文件MP4格式不支持,怎么转换?有
和茶有关的诗词,白居易最出名的描述古琴的诗
嘉兴哪里有卖公交卡的?
急求关于语文,一个成语加一句名句;写出成语
元盛大酒店我想知道这个在什么地方
DNF怎么搞的砸了700W给凯利刀都没上8
骗了女友怎么才能的到她的原谅,他说分的
人一天正常要吃多少餐
鬼泣3通关后打怪那有隐藏吗?
It is what you do what you say that matte
小小少年歌词 中文
涉谷到底是什么地方?
怎么样才能矫正脊髓
中国的 下午3:25是法国的几点
推荐资讯
杰造型地址在哪,我要去那里办事
这种靴子淘宝上有吗有 ?
困倦的用英语怎么说,"我都快困死了" 英语怎么
手机怎么当猫
去九华山旅游,住哪家宾馆好?价格多少?
对话十动作句子
长汀哪里有薏仁粉卖
男性生殖器上涨了一些水泡。透明的!怎么回事
封釉和镀膜哪个好,纳米膜和钢化膜区别
皮肤老有瘀青是不是血小板缺少?
喜欢一个人和爱一个人有什么区别???
我要找一家上海的空调配件公司......
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?