gpt4 book ai didi

UTF-8:读者如何知道一个字符有多少字节?

转载 作者:行者123 更新时间:2023-12-02 02:08:18 24 4
gpt4 key购买 nike

UTF-8 可以用一个字节或多个字节来表示每个字符。假设我有以下字节序列:

48 65

我怎么知道它是否是由 48 表示的一个字符和另一个由 65 表示的字符, 或者它是由两个字节的组合表示的一个字符 48 65 ?

最佳答案

UTF-8 的设计方式是明确的。 0x48 或 0x65 或 0x80 以下的任何内容都不是多字节序列的一部分。

UTF-8 编码的代码点的第一个字节的最高有效位将告诉您使用了多少字节。这应该从 UTF-8 Bit Distribution Table 清楚:

Scalar Value                First Byte  Second Byte Third Byte  Fourth Byte
00000000 0xxxxxxx 0xxxxxxx
00000yyy yyxxxxxx 110yyyyy 10xxxxxx
zzzzyyyy yyxxxxxx 1110zzzz 10yyyyyy 10xxxxxx
000uuuuu zzzzyyyy yyxxxxxx 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx

因此,最糟糕的情况是您在某个地方的中间字符串中跳转并看到一个字节,其最高有效位是 1 然后是 0(从 0x80 到 0xBF 的所有内容),这表示它是一个连续字节。在这种情况下,您必须回溯最多 3 个字节才能确定完整序列。

关于UTF-8:读者如何知道一个字符有多少字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45465301/

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