哈希空间

utf8 编码 原理讲解

utf8 是一种变长编码,当仅有 ASCII 字符时与 ASCII 编码完全一致,实现老旧软件的基本兼容性。

第一个字节用来区分是否位多字节编码 还是单个 ascii 字符。

  • 11 开头表示为多字节编码
  • 0 开头表示 ASCII 编码

如何确定变长编码的字节数呢?首字节中开头两个位是 11 结尾是 0 中间1 的个数就是后续编码字节数。
确定了编码头之后,后续的字节均以 10 开头,每个8 位字节中 6 位用来存储有效数据。

这样的编码有几个优势:

  1. 兼容 ascii

  2. 如果从任意位置读取:

    • 读到了 0 开头则是个 ASCII 编码,
    • 读到了 11 开头则是多字节编码的头
    • 读到了 10 开头则是多字节编码的中部,可以向后或向前滑动去读到完整内容,不会破坏整体内容。
  3. utf8 一般可以扩展到 4个字节编码,可表示的范围还是很大的。

本文 最佳观看地址:https://www.hashspace.cn/unicode-utf8.html 阅读 1054

打开 哈希空间 微信小程序中查看更佳