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

Unicode 与 UTF-8 的关系?

作者: Guohanzhong | 来源:发表于2019-01-16 23:23 被阅读0次
Unicode

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

简而之,Unicode是字符集,将所有的文字,符号等等编码。

UTF-8 是编码的方式,优化 Unicode 的编码。

例如: “Hi! 你好”

你看到的 Unicode 字符编码是这样的:

H 0048
I 0069
你 4F60
好 597D

每一个字符对应了一个16进制的数字。

由于电脑只懂2进制编码,所以按照 Unicode 的方式(UCS-2),会按以下储存:

H 00000000 01001000
i 00000000 01101001
! 00000000 00100001
你 01001111 01100000
好 01011001 01111101

这个字符串共估了8个字节,对比以上中英文2进制编码,英文前9个都是0,占用了硬碟容量,十分浪费!

怎样优化?

UTF-8 的诞生就是为了优化这个问题。

  1. 单字节的字符,字节的第一位设为0,对于英语文本,UTF-8码只占用一个字节,和ASCII码完全相同;
  2. n个字节的字符 n>1,第一个字节的前n位设为1,第n+1位设为0,后面字节的前两位都设为10,这n个字节的其余空位填充该字符unicode码,高位用0补足。如以下所示:
UCS-2: 00000000 00000000 00000000 011111112
UTF-8: 0XXXXXXX
-----
UCS-2: 00000000 00000000 00000111 111111112
UTF-8: 110XXXXX 10XXXXXX
------
UCS-2: 00000000 00000000 11111111 111111112 
UTF-8: 1110XXXX 10XXXXXX 10XXXXXX
------
UCS-2: 00000000 00011111 11111111 111111112 
UTF-8: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX

所以 “Hi! 你好” 就变成了

H 01001000
I 01101001
! 00100001
你 11100100 10111101 10100000
好 11100101 10100101 10111101 

对比 UCS-2 及 UTF-8,英文的字节变短了,虽然每个中文字符用多了一个字节。但整体来说 UTF-8 只用了9个字节,比 UCS-2 的10个字节小了一点。

整体来说,UTF-8 更节省了字节的占用容量,至小在英文字符上的确较为节省。

相关文章

  • 【底层原理】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/hazvdqtx.html