美文网首页
Unicode 与 UTF-8 的关系

Unicode 与 UTF-8 的关系

作者: linweiyu21 | 来源:发表于2017-08-04 16:57 被阅读0次

Unicode 是字符集

在早期, Unicode 是集标准与编码形式于一身的,既面向标准,又面向存储.但是现在, Unicode 只是一个字符集,它定义了某个具体字符对应的码位 (Code Point)

一开始unicode是集标准与编码形式于一身的,既面向标准,又面向存储。那时候还没有互联网,大家都是用电脑存储东西进行单机操作,或者说互联网应用还很稀少。所以那时候unicode得不到推广,只是理论上有这么一套东西存在。unicode规定,第65538的字符存储起来,就要三个字节了,因为2个字节,最大排序是65536,所以65538那个编号的字符,占用三个字节,但是这三个字节解析起来很容易出错,所以unicode这时候根本没人用他,只是有这套标准,而没应用。然后后来国际标准组织制定出来了ucs-2标准,但是ucs-2还是面向存储的,规定一个字符必须用2个字节存储,对于大于2个字节的,又制定了ucs-4标准,规定一个字符全都用4个字节存储。后来互联网火了,国际标准组织又搞出了utf-8/utf-16/utf-32,这三个编码方案主要是面向传输的,当然也是一种存储方案,这时候,unicode才被全世界所应用。

UTF-8 是编码规则

UTF 即 Unicode Transformation Formats .UTF 的作用是对 字符/Code Point 编码和解码,使其可以 以二进制形式进行存储或传输.
至于一个字符占多少个字节,在不同的 UTF 规则中是不同的.

在UTF-8中,0-127号的字符用1个字节来表示,使用和US-ASCII相同的编码。这意味着1980年代写的文档用UTF-8打开一点问题都没有。只有128号及以上的字符才用2个,3个或者4个字节来表示。因此,UTF-8被称作可变长度编码。

通过一个特定的编码规则,可以将 一个Code Point 编码为 一个UTF-8规则下的二进制数.反之可以将 一个UTF-8规则下的二进制数 解码为 一个Code Point.

UTF-8的编码解码规则

U+ 0000 ~ U+ 007F: 0XXXXXXX
U+ 0080 ~ U+ 07FF: 110XXXXX 10XXXXXX
U+ 0800 ~ U+ FFFF: 1110XXXX 10XXXXXX 10XXXXXX
U+10000 ~ U+1FFFF: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
作者:邱昊宇
链接:https://www.zhihu.com/question/23374078/answer/24385963
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

U+开头的即 Code Point,通过判断 某个具体字符的 Code Point 所在的范围,决定这个字符以多少个字节进行编码解码.
编码后的相同字节数的二进制数,它们每个字节的前缀都是有固定值的(个人认为这和哈夫曼编码有点类似的).计算机读取到前缀,即可知道这个字符占多少个字节.

总结

Unicode 是一个字符集,包含了非常多的不同国家的字符.
而对 Unicode 进行编码解码的规则有许多,如:UTF-8,UTF-16.
使用 UTF-8 这种编码规则,是为了节省存储字符值的空间.

参考

Unicode 和 UTF-8 有何区别?
学点编码知识又不会死:Unicode的流言终结者和编码大揭秘

相关文章

  • 【底层原理】Unicode与UTF-8的区别

    要弄清Unicode与UTF-8的关系,我们还得从他们的来源说起,下来我们从刚开始的编码说起,直到Unicode的...

  • 我是字符串(1-5)

    1. 字符编码unicode utf-8 ascii的关系? 定义:百度定义 关系: Unicode标准最常用的是...

  • Unicode 与 UTF-8 的关系

    Unicode 是字符集 在早期, Unicode 是集标准与编码形式于一身的,既面向标准,又面向存储.但是现在,...

  • Unicode 与 UTF-8 的关系?

    Unicode (中文称:万国码)给每个字元提供了一个唯一的数位,不论是什么平台、不论是什么程式、不论是什么语言。...

  • Unicode与UTF-8之间的关系

    Unicode Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且...

  • Unicode和UTF-8、UTF-16

    Unicode 和 UTF-8 、UTF-16是什么关系呢?这是我最近好奇的一个问题。 Unicode Unico...

  • 字符编码介绍及常见问题总结

    目录 了解字符编码 Unicode与UTF-8,UTF-16之间的关系 字符编码常见问题 相关资料链接 1. 了解...

  • unicode, utf8/16, codepoint, big

    big/small endian ASCII,Unicode和UTF-8 unicode、codepoint

  • 中文处理

    从几个例子说说 Erlang 如何处理中文. 知识介绍:Unicode与UTF-8的区别,简单来说,Unicode...

  • 5.Python之文件的基础

    文件 编码 常用编码 Unicode与UTF-8编码字节范围对应关系 文件数据 多行文本 文件的基本处理 打开模式...

网友评论

      本文标题:Unicode 与 UTF-8 的关系

      本文链接:https://www.haomeiwen.com/subject/mlqblxtx.html