作者:拉丁吴
UTF-8和unicode有什么区别?存储方式不同?不同的编码方式?它们看起来很相似,但实际上它们不是同一层次的概念
如果你想先说清楚他们的区别,首相应该谈谈Unicode的来由。
众所周知,盘古开天辟地之前,sorry ,走错片场了(⊙o⊙)…当计算机发明时 ,由于计算机只能表示二进制数据,为了方便交流,美帝人民同意了编码系统,即ASCII码,把abc..xyz…ABC…XYZ..!@#…0、1、2、3、4…相应地,我们发现几乎有128个数字和半个字节的长度。为了防止将来需要为新符号编码,我们只需取一个字节,最高位置为0。每个符号的编码由0-127分别由后七位对齐。因此,计算机每次读取一个字节,然后参考它ASCII将这些编码翻译成字符。美国人民非常高兴,自己玩…后来欧洲人也玩电脑,发现不行。有很多符号(法语、德语)ASCII不能说啊,所以欧洲人自己也卷了一套编码,一个字节的长度,也用了最高水平。这套编码叫ISO。和ASCII类似的表,计算机一次只读一个字节,然后按照ISO表,解码字符。所以欧洲人也很高兴。中国人不高兴,特别是我们有成千上万的汉字,通常有成千上万的汉字,没有两个字节不能交货。于是勤劳勇敢的中国人用两个字节来表达中文。整出一套gbk。为了现实,我们兼容了中华民族。ASCII编码。gbk编码规定,计算机不能每次只读一个字节那么死板先看看第一个是0还是0 如果是,就当作ASCII读一个字节,否则读两个字节。
所以世界非常混乱,欧洲人不能理解我们发送的信息,我们不能理解他们的东西,美国人不能理解我的东西,但我们可以理解他们的信息。
总之,之,天下大乱,群雄并起,人民画…
这时,一个国际组织站了起来,说:这样吧,我来卷一套编码,把大家的编码都归纳进去。于是unicode编码出现了。该编码表的编号从0到100多万(三字节)。每个区间对应一种语言的编码。世界上大部分的字符目前几乎都收纳了。所有字符都有唯一的编号,这就解决了解码的冲突,所以世界决定了!但是,unicode总结大家,但没有规定二进制传输和二进制解码。只留下一句话:大哥只能在这里帮你。
我知道你一定在想,要一个头发规则,让电脑每次读三个字节,然后参考Unicode解码很好。这个想法很好,但如果像1号这样的小数据编号需要三个字节,那么就是0x00001,这简直是浪费啊,明明一个字节就能表达出来,你要整整三个,几个意思啊?
无论如何,虽然大哥走了,但问题还是要解决的,所以有以下解决方案:uft-8,utf-16,utf-32这些编码方案。utf-所有的字符都是用两个字节编码的,utf-32选择用4个字节编码。下面只说一下utf-这种解决方案,因为它使用最多,使用最多,因为当时它的解决方案最好,最节约资源。
utf-8为节约资源,编码长度从1字节到6字节不等
utf-8.png
我知道你想说,看起来很明显utf-正常人可以看到16节省更多的资源和空间。但事实上,当时互联网上的大部分资源都是英文的,英文的utf-16也是两个字节,在utf-8中有一个字节。当时显然是utf-8.节约更多资源。现在我们在中国世界比较它们utf-更节约资源。
OK,关于unicode和utf-8的区别已经解释完了。下面用一张图来巩固这些差异。
Unicode与uft-8的结构关系.png
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至827202335@qq.com 举报,一经查实,本站将立刻删除。文章链接:https://www.eztwang.com/dongtai/55107.html