哈希空间
utf8 编码 原理讲解
utf8 是一种变长编码,当仅有 ASCII 字符时与 ASCII 编码完全一致,实现老旧软件的基本兼容性。
第一个字节用来区分是否位多字节编码 还是单个 ascii 字符。
- 11 开头表示为多字节编码
- 0 开头表示 ASCII 编码
如何确定变长编码的字节数呢?首字节中开头两个位是 11 结尾是 0 中间1 的个数就是后续编码字节数。
确定了编码头之后,后续的字节均以 10 开头,每个8 位字节中 6 位用来存储有效数据。
这样的编码有几个优势:
-
兼容 ascii
-
如果从任意位置读取:
- 读到了 0 开头则是个 ASCII 编码,
- 读到了 11 开头则是多字节编码的头
- 读到了 10 开头则是多字节编码的中部,可以向后或向前滑动去读到完整内容,不会破坏整体内容。
-
utf8 一般可以扩展到 4个字节编码,可表示的范围还是很大的。
本文 最佳观看地址:https://www.hashspace.cn/unicode-utf8.html 阅读 1096