gpt4 book ai didi

C++:将 UTF16 字符的十六进制表示形式转换为十进制(如 python 的 int(hex_data, 16))

转载 作者:行者123 更新时间:2023-11-28 05:25:59 24 4
gpt4 key购买 nike

我找到了将十六进制表示解码为十进制的解释,但只能使用 Qt: How to get decimal value of a unicode character in c++

因为我没有使用 Qt 和 cout << (int)c 工作(编辑:如果你正确使用它,它实际上工作......!):

如何执行以下操作:

我得到了通过某个套接字传输的两个字符的十六进制表示(刚刚弄清楚如何最终获得十六进制 repr!..)并且两者的组合 yield 遵循 utf16-representation:

char c = u"\0b7f"

这应该转换成它的 utf16 十进制值 2943!(在 utf-table http://www.fileformat.info/info/unicode/char/0b7f/index.htm 中查看)

这应该是绝对基础的东西,但作为一个指定的 Python 开发人员,我不得不在一个项目中使用 C++,我把这个问题挂了几个小时....

最佳答案

使用更宽的字符类型(char 只有 8 位,您至少需要 16 位),以及 UTC 文字的正确格式。这有效( live demo ):

#include <iostream>

int main()
{
char16_t c = u'\u0b7f';

std::cout << (int)c << std::endl; //output is 2943 as expected

return 0;
}

关于C++:将 UTF16 字符的十六进制表示形式转换为十进制(如 python 的 int(hex_data, 16)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40546800/

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