gpt4 book ai didi

c++ - 在不知道 UTF-8 编码的情况下拆分空白字符上的 UTF-8 编码字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:13 25 4
gpt4 key购买 nike

我想在每个空白字符处拆分一个字符串 (' ', '\n', '\r', '\t', '\v', '\f')字符串以 UTF8 编码存储在字节数组中(例如 char*,或 vector 或字符串)

我可以在每个拆分字符处拆分字节数组吗?或者说,我确定在多字节字符中找不到这些字符对应的字节值吗?通过查看 UTF-8 规范,似乎所有多字节字符都只有大于 128 的字节。

谢谢

最佳答案

是的,你可以。

多字节序列必然包含一个前导字节(两个 MSB 等于 11)和一个或多个连续字节(两个 MSB 等于 10)。多字节序列的总长度(前导字节+连续字节)等于前导字节中等于 1 的 MSB 的计数,在第一个位 0 出现之前(例如:如果前导字节是 110xxxxx,后面应该正好有一个连续字节;如果是11110xxx,应该正好有三个连续字节)。

因此,如果您发现短 MB 序列或没有前导字节的杂散 continuationb 字节,则您的字符串可能无论如何都是无效的,并且您拆分过程可能不会比它可能已经存在的更糟。

但有一点您可能需要注意:Unicode 在较高的非 ASCII 兼容范围内引入了其他“空白”符号。您可能希望相应地对待它们。

关于c++ - 在不知道 UTF-8 编码的情况下拆分空白字符上的 UTF-8 编码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26279114/

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