首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

UTF-8000:无限UTF-8

摘要

UTF-8000 Unlimited UTF-8! ASCII ⊆ UTF-8 ⊆ UTF-8000. No special cases introduced. All properties preserved. Try out the reference implementation with $ pipx install UTF-8000 . UTF-8000 is in no way end...

xxxxxx the UTF byte 8000 xxxx 111111 start xxx bits
2026-09-20 1 阅读 约7分钟阅读 vismit2000
分享:
字号:
UTF-8000 无限UTF-8! ASCII ⊆ UTF-8 ⊆ UTF-8000。不介绍特殊情况。保留所有财产。使用 $ pipx install UTF-8000 尝试参考实现。 UTF-8000 绝不是 Unicode 联盟的认可或代表。这是一个有趣的独立项目/提案。 TLDR / 示例 ASCII 1 0 xxxxxxx UTF-8 2 11 0 xxxx x 10 xxxxxx 3 11 10 xxxx 10 x xxxxx 10 xxxxxx 4 11 110 xxx 10 xx xxxx 10 xxxxxx 10 xxxxxx UTF-8000 5 11 1110 xx 10 xxx xxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 6 11 11110 x 10 xxxx xx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 7 11 111110 10 xxxxx x 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 8 11 111111 10 0 xxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 9 11 111111 10 10 xxxx 10 x xxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 11 111111 10 110 xxx 10 xx xxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx ... 22 11 111111 10 111111 10 111111 10 110 xxx 10 xx xxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx ... 10 xxxxxx ... 这里的示例 22 字节代码单元没有任何特殊情况。这只是一个很好的原型示例,展示了具有多个起始字节的 UTF-8000 的强大功能。只有两种特殊情况,两者都继承自 UTF-8:原样的 ASCII,以及具有 4 个强制内容位来检查超长编码的 2 字节 UTF-8,而不是 5 个用于所有较长长度代码单元的强制内容位。剖析 下面是来自 tldr 的示例 22 字节代码单元的剖析图。有关术语定义的更多信息,请参阅术语表。第四字节令人兴奋!它是连续字节、起始字节、最终起始字节,具有内容位,并且仅具有一些强制内容位,这些位横跨最终起始字节和第一个非起始字节。 UTF-8000 规范的主要贡献是明确将 UTF-8 代码单元第一个字节的最高位拆分为自同步位和起始位,然后明确如何在需要时将起始位跨连续字节进行条带化,以实现任意大的代码单元。术语表 为方便起见,这些术语按第一个要求的时间顺序排列,而不是按字母顺序排列。定义中使用的术语带有下划线,可单击的超链接。术语 定义 代码点 非负整数,也称为无符号整数。代码单元 对单个代码点进行编码的 UTF-8000 字节序列。第一个字节 开始 UTF-8000 代码单元的第一个、唯一的字节。第一个字节的自同步前缀对于 ASCII 为 0,对于多字节代码单元为 11。该术语与起始字节不是同义词。第一个字节必然是起始字节,但反之则不然。正是由于这个原因,第一个字节有时也称为第一个起始字节。有趣的观察:由于自同步前缀 0,ASCII 字节的高十六进制半字节只能是 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 之一。由于自同步,该术语与连续字节互斥。连续字节 多字节 UTF-8000 代码单元的第一个字节之外的字节。连续字节的自同步前缀为10,也称为连续前缀位。有趣的观察:由于自同步前缀 10,连续字节的高十六进制半字节只能是 8 、 9 、 A 、 B 之一。由于自同步,该术语与第一个字节互斥。自同步前缀 每个 UTF-8000 字节的最高位,指示它是第一个字节还是后续字节。可能的自同步前缀形成一棵无前缀树: .---- 0 ASCII 的第一个字节 `---- 1 --- 0 多字节 UTF-8000 的连续字节 `---- 1 多字节 UTF-8000 的第一个字节 UTF-8000 继承的 UTF-8 的这一巧妙架构提供了字节级别的自同步属性:我们可以立即知道我们是什么类型的字节只需查看这些最高位即可查看它应该属于代码单元的位置。这在解码以 UTF-8000 编码的文件的一部分时最有用。如果我们随机地在文件中查找任意字节,我们可以明确地判断我们是否位于第一个字节,从那里我们可以立即开始解码新的代码单元,或者我们位于连续字节,从这里我们需要进一步查找才能找到下一个第一个字节以便开始解码。我们也不必在查找位置之前处理任何字节,以便发现某些全局状态或我们所查找的字节的上下文;无论出现在哪里,第一个字节始终是明确的第一个字节,我们可以通过其自同步前缀为 0 或 11 来推断。这不仅对于随机访问很有用,而且对于错误恢复也很有用。假设我们正在解码一个容易出错的 UTF-8000 字节流,并且每当遇到错误时
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱