I found an explanation to decode hex-representations into decimal but only by using Qt: How to get decimal value of a unicode character in c++
As I am not using Qt and cout << (int)c
does not work (Edit: it actually does work if you use it properly..!) :
How to do the following:
I got the hex representation of two chars which were transmitted over some socket (Just figured out how to get the hex repr finally!..) and both combined yield following utf16-representation :
char c = u"\0b7f"
This shall be converted into it's utf16 decimal value of 2943 ! (see it at utf-table http://www.fileformat.info/info/unicode/char/0b7f/index.htm )
This should be absolut elementary stuff, but as a designated Python developer compelled to use C++ for a project I am hanging this issue for hours....
Use a wider character type ( char
is only 8 bits, you need at least 16), and also the correct format for UTC literals. This works ( live demo ):
#include <iostream>
int main()
{
char16_t c = u'\u0b7f';
std::cout << (int)c << std::endl; //output is 2943 as expected
return 0;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.