gpt4 book ai didi

utf-8 - 为什么UTF-8编码不使用11111xxx形式的字节作为第一个字节?

转载 作者:行者123 更新时间:2023-12-02 00:39:48 26 4
gpt4 key购买 nike

根据https://en.wikipedia.org/wiki/UTF-8 ,字符编码的第一个字节永远不会以 10xxxxxx 或 11111xxx 的位模式开始。第一个的原因很明显:自动同步。但第二个呢?是为了潜在的扩展以启用 5 字节编码吗?

最佳答案

旧版本的 UTF-8 最多允许 6 字节编码。后来它被限制为 4 字节编码,但没有理由为了实现该限制而使格式不一致。前导 1 的数量表示序列的长度,因此 11111xxx 仍然意味着“至少 5 个字节”,只是不存在这样的合法序列。

拥有非法代码点对于检测损坏非常有用(或者更常见的是,尝试解码实际上不是 UTF-8 的数据)。因此,仅仅为了取回一点存储空间(实际上不能用于任何用途)而使格式不一致,会损害其他目标。

关于utf-8 - 为什么UTF-8编码不使用11111xxx形式的字节作为第一个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54831146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com