问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Unicode(utf-8) 是什么意思?

发布网友 发布时间:2022-04-23 05:46

我来回答

5个回答

热心网友 时间:2022-04-22 07:38

UTF8并不算是一种电脑编码,而是一种储存和传送的格式,如前所述,每个Unicode/UCS字符都以 2或4个bytes来储存,看看以下的比较:

以"I am Chinese"为例
用ANSI储存:12 Bytes
用Unicode/UCS2储存:24 Bytes + 2 Bytes(header)
用UCS4储存:48 Bytes + 4 Bytes(header)

以"我是中国人"为例
用ANSI储存:10 Bytes
用Unicode/UCS2储存:10 Bytes + 2 Bytes(header)
用UCS4储存:20 Bytes + 4 Bytes(header)

由此可见直接以Unicode/UCS的原始形式来储存是一种极大的浪费,而且也不利于互联网的传输(中文稍为合算一点^_^)。

有见及此,Unicode/UCS的压缩形式--UTF8出现了,套用官方网站的首句话『UTF-8 stands for Unicode Transformation Format-8. It is an octet (8-bit) lossless encoding of Unicode characters.』,由于UTF也适用于编码UCS,故亦可称为『UCS transformation formats (UTF)』

UTF8是以8bits即1Bytes为编码的最基本单位,当然也可以有基于16bits和32bits的形式,分别称为UTF16和UTF32,但目前用得不多,而UTF8则被广泛应用在文件储存和网络传输中。

编码原理

先看这个模板:

UCS-4 range (hex.) UTF-8 octet sequence (binary)
0000 0000-0000 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx

0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx

编码步骤:
1) 首先确定需要多少个8bits(octets)
2) 按照上述模板填充每个octets的高位bits
3) 把字符的bits填充至x中,字符顺序:低位→高位,UTF8顺序:最后一个octet的最末位x→第一个octet最高位x
4) 解码的原理一样。

实例:(留意每个bit的颜色,粗体字为模板内容)

UCS-4 UTF-8
HEX BIN Bytes BIN HEX Bytes
0000 000A 00001010 4 00001010 0A 1
0000 0099 10011001 4 11000010 10011001 C2 99 2
0000 8D99 10001101 10011001 4 11101000 10110110 10011001 E8 B6 99 3

不知大家看懂了没有,其实不懂也无所谓,反正又不用自己算,程式可以完全代劳。

以UTF8格式储存的文件档首标识为EF BB BF。

效率

从上述编码原理中得出的结论是:
1.每个英文字母、数字所占的空间为1 Byte;
2.泛欧语系、斯拉夫语字母占2 Bytes;
3.汉字占3 Bytes。

由此可见UTF8对英文来说是个非常诱人的方案,但对中文来说则不太合算,无论用ANSI还是 Unicode/UCS2来编码都只用2 Bytes,但用UTF8则需要3 Bytes。

以下是一些统计资料,显示用UTF8来储存文件每个字符所需的平均字节:
1.拉丁语系平均用1.1 Bytes;
2.希腊文、俄文、阿拉伯文和希伯莱文平均用1.7 Bytes;
3.其他大部份文字如中文、日文、韩文、Hindi(北印度语)用约3 Bytes;
4.用超过4 Bytes的都是些非常少用的文字符号。

参考资料:http://www.renyuan.com/article.asp?id=135

热心网友 时间:2022-04-22 08:56

各国文字/符号用不同的编码,这样可以减小文本文件的体积
UTF8 编码是很特殊的编码,它可以表示所有电脑上的文字/符号
一般很少用这种编码

热心网友 时间:2022-04-22 10:30

对东亚语言(双字节文字,比如汉字,朝鲜文)进行优化支持的一种编码方式

热心网友 时间:2022-04-22 12:22

UNICODE(UTF-8)这个项目放在 IE 的菜单栏下是为了让你能够强制 IE 用 UTF-8 字符集显示页面。

只有在页面编码为 UTF-8 但 IE 却无法正确地选择 UTF-8 字符集来显示页面的时候,你才应该动用该项目。

如果现在你选择该项目,这个页面将被显示成乱码,因为这个页面的编码是 GB2312 (简体中文),不是 UTF-8。以不正确的编码显示页面就好像把汉语拼音当成法语来念,结果当然是没人能听懂的乱语。

大多数情况下,IE 会(其实任何浏览器都会)正确地判断出页面的编码然后选用正确的字符集显示页面,所以你大可忽略 “查看/编码/” 菜单的存在。

热心网友 时间:2022-04-22 14:30

JoshuaChen回答的好~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
刘德华《忘情水》歌词 忘情水专辑 忘情水 求 忘情水-刘德华 无损音质 华东理工大学长江学院怎么样 东华理工大学长江学院机械工程系考研情况 南昌教育学院跟东华理工大学的长江学院比哪个好? 东华理工大学和东华理工大学长江学院是同一所吗 东华理工大学长江学院考研难吗 CKC证书是啥意思? ckc康复是什么意思? 深然直播声卡多少钱? 直播声卡多少钱? RBQ是什么? 房间里有蚂蚁怎么彻底清除 字符编码中ASCII,Unicode和UTF-8的区别 utf8与unicode的区别 到底是什么关系 银行个人信用贷款怎么办理?办理条件是什么? rbq是什么意思网络语 UTF8和UNICODE是什么关系? 如何快速办理银行个人贷款 unicode utf-8 utf-16之间有什么区别与联系? 肉bq是啥意思是什么? Unicode与UTF-8/UTF-16之间有啥联系或区别? rbq是什么意思啊? utf8和unicode编码究竟是什么关系?有何区别? 二次元rbq什么意思 请问unicode和UTF-8之间的关系是什么? “rbq”是什么意思? utf8和unicode的区别 给老师的一封信六年级 男生总说的rbq是什么意思呀? 手机直播需要什么设备 声卡买几十元的还是300左右的? unicode字符集是几个字节表示一个字符?为什么需要utf-8? 话说香港MOMAX摩米士的移动电源怎么样?设计挺不错,但是价格比一般国内的都贵,可以入手吗? rbq是什么意思?在一个二次元的群里看到说别人是rbq 手机直播声卡,最低多少钱,想搞个直播,没经验 存文件用utf-8好还是unicode UNICODE和UTF-8到底选择什么好 摩米士移动电源质量有保证吗? 怎么取消支付宝收款时,金币掉落的声音啊? 男生们总说的rbq是什么意思? unicode 怎样转 utf-8 单手机直播声卡多少钱 移动电源摩米士MOMAX小旅行箱怎么样? 什么是rbq? Windows记事本的 ANSI,Unicode,UTF-8三种编码模式有什么区别? 支付宝收钱哗啦啦铃声怎么设置? 这个声卡怎么样用几部手机直播的多少钱 崩坏3rbq什么意思 为什么感觉白T恤衫会越洗越旧?