gpt4 book ai didi

unicode - 什么是 UTF-8 数据的好终止符字节?

转载 作者:行者123 更新时间:2023-12-03 16:56:29 25 4
gpt4 key购买 nike

我需要在低级环境中操作 UTF-8 字节数组。字符串将是前缀相似的,并保存在一个利用这个(trie)的容器中。为了尽可能地保留这种前缀相似性,我更愿意在字节数组的末尾使用终止符,而不是 (说)一个字节长度的前缀。

我应该使用什么终结器?好像0xff在任何 UTF-8 字符串的所有位置都是非法字节,但也许有人具体知道?

最佳答案

字节 0xff 不能出现在有效的 UTF-8 序列中,0xfc、0xfd、0xfe 中的任何一个也不能出现。

所有 UTF-8 字节必须匹配以下之一

0xxxxxxx - Lower 7 bit.
10xxxxxx - Second and subsequent bytes in a multi-byte sequence.
110xxxxx - First byte of a two-byte sequence.
1110xxxx - First byte of a three-byte sequence.
11110xxx - First byte of a four-byte sequence.
111110xx - First byte of a five-byte sequence.
1111110x - First byte of a six-byte sequence.

没有七个或更大的字节序列。 latest version of UTF-8只允许最多 4 个字节长度的 UTF-8 序列,这将使 0xf8-0xff 未使用,但尽管字节序列可以根据过时的版本有效地称为 UTF-8 并且在 0xf8-0xfb 中包含八位字节,但这是可能的。

关于unicode - 什么是 UTF-8 数据的好终止符字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8916753/

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