gpt4 book ai didi

c++ - 如何从 C++ 中的二进制文件中获取 utf-8 字符数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:55:14 24 4
gpt4 key购买 nike

例如,我有:11100011 10000010 10100010。它是以下的二进制文件:;它在 UTF-8 中的编号是:12450

我怎样才能从二进制中得到这个数字?

最佳答案

您显示的字节序列是字符的 UTF-8 编码版本。

您需要解码 UTF-8 以获得 Unicode 代码点。

对于这个确切的字节序列,以下位组成代码点:

11100011 10000010 10100010
**** ****** ******

因此,连接带星号的位我们得到数字 0011000010100010,它等于十进制的 0x30a2 或 12450。

参见 Wikipedia description有关如何解释编码的详细信息。

简而言之:如果在第一个字节中设置了第 7 位,则同时设置的相邻位(称为 m)的数量 (2) 给出了随后的字节数代码点。从每个字节中提取的位数对于第一个字节是 (8 - 1 - 1 - m),从每个后续字节中提取 6 位。所以这里我们得到 (8 - 1 - 1 - 2) = 4 + 2 * 6 = 16 位。

正如评论中所指出的,有很多库可用于此,因此您可能不需要自己实现。

关于c++ - 如何从 C++ 中的二进制文件中获取 utf-8 字符数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10758529/

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