我找到了一种解释,可以将十六进制表示形式解码为十进制,但只能使用Qt:
How to get decimal value of a unicode character in c++
由于我没有使用Qt,所以cout << (int)c
不起作用(编辑:如果正确使用它实际上就可以起作用..!):
如何执行以下操作:
我得到了两个字符的十六进制表示形式,这些字符通过某个套接字传输(只是弄清楚了最终如何获得十六进制表示形式!..),并且在utf16表示形式之后都合并了收益:
char c = u"\0b7f"
这将被转换为2943的utf16十进制值!
(在utf表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++ - C++:将UTF16字符的十六进制表示形式转换为十进制(例如python的int(hex_data,16)),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40546800/