带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(8)

简介: 带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(8)

带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(7) https://developer.aliyun.com/article/1240880?groupCode=tech_library


10.5、UTF-8


10.5.1概述


Unicode还是UCS最初都是采用多字节定长编码,由于没有兼容现有的 ASCII 标准的文件和软件,新标准很难被推广,于是兼容ASCII版本的UTF-8就诞生了。


UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,是现代字符编码模型中的第三层 CEF 。它可以用一至四个字节对 Unicode 字符集中的所有有效编码点进行编码,属于Unicode标准的一部分,UTF-8 就是为了解决向后兼容 ASCII 码而设计,Unicode 中前 128 个字符(与 ASCII 码一一对应),使用与 ASCII 码相同的二进制值的单个字节进行编码,这使得原来处理 ASCII 字符的软件无须或只须做少部分修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或发送文字优先采用的编码方式。

—— 维基百科


UTF-8需要兼容ASCII,所以也需要有前缀码来控制,前缀规则如下:

  • 1)如果首字节以 0 开头,则是单字节编码(即单个单字节码元);
  • 2)如果首字节以 110 开头,则是双字节编码(即由两个单字节码元所组成的双码元序列);
  • 3)如果首字节以 1110 开头,则是三字节编码(即由三个单字节码元所组成的三码元序列),以此类推。


理论上UTF-8变长可以超过4个字节,只是Unicode联盟规范上限是10FFFF,所以UTF-8规则设计上也限制了大小。



带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(9) https://developer.aliyun.com/article/1240878?groupCode=tech_library

相关文章
|
7月前
|
存储 JavaScript Java
[字符编码] 理论篇:常见字符集与编码方式
[字符编码] 理论篇:常见字符集与编码方式
192 0
|
存储
带你读《全景揭秘字符编码》之二:二、什么是字符编码?
带你读《全景揭秘字符编码》之二:二、什么是字符编码?
255 1
|
自然语言处理
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(2)
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(2)
152 0
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(3)
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(3)
201 0
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(4)
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(4)
188 0
|
存储 编解码
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(1)
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(1)
194 0
|
Unix Linux Windows
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(7)
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(7)
163 0
|
自然语言处理
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(6)
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(6)
165 0
|
编解码 算法 Unix
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(9)
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(9)
138 0
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(10)
带你读《全景揭秘字符编码》之十:常见字符编码4:UNICODE(10)
101 0