如何在 c++ 中获取俄语字符串的十六进制值
How to get the hex value of Russian string in c++
我有一些php代码,它通过执行以下操作获取俄语字符串并将其转换为十六进制:
$string = "Ф";
$hex='';
for ($i=0; $i < strlen($string); $i++){
$hex .= dechex(ord($string[$i]));
}
echo $hex;
这将产生我正在寻找的正确输出:
d0a4
我试图在C++重现这些结果,但没有成功。如果我做这样的事情,似乎 c++ 返回的十六进制值为 424:
char16_t strg(L"Ф");
或
wstring strg(L"Ф");
或
short strg(L'Ф');
请帮助我在C++中重现d0a4
值。谢谢。
试试这个
// wide character data
std::wstring wstr = L"Ф";
// wide to UTF-8
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv1;
std::string u8str = conv1.to_bytes(wstr);
std::cout << "UTF-8 conversion produced " << u8str.size() << " bytes:n";
hex_print(u8str);
// wide to UTF-16le
std::wstring_convert<std::codecvt_utf16<wchar_t, 0x10ffff, std::little_endian>> conv2;
std::string u16str = conv2.to_bytes(wstr);
std::cout << "UTF-16le conversion produced " << u16str.size() << " bytes:n";
hex_print(u16str);
参考: http://en.cppreference.com/w/cpp/locale/wstring_convert/to_bytes
相关文章:
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 指向存储在字符串 c++ 中的十六进制
- 如何在C++中将十六进制字符串转换为文本数据
- 使用 sprintf 将十六进制0xAABBCC转换为字符串"AA:BB:CC"
- 定义宏以将前缀 0x 添加到十六进制字符串文本
- 如何使用 setfill 和 setw 在字符串变量中存储十六进制值
- 将字符串(可以是十进制字符串或十六进制字符串)转换为整数C++
- 在Arduino中将字符串转换为(逗号分隔的十六进制)字符串到无符号字符数组
- 将 std::string( "x3BxDEx7C" ) 转换为可读的十六进制字符串?
- C++ 将十六进制字符串表示形式转换为十六进制字符串表示形式
- 字符数组到十六进制字符串的转换 - 意外输出
- C++将 wwn 字符串转换为识别为十六进制的数据类型
- 将字符串存储为十六进制而不进行转换
- C++:格式化包含十六进制值的字符串
- 字符串十六进制到指针获取值
- 如何从字符串十六进制中获取十进制
- Arduino:将字符串十六进制"#FFFFFF"转换为 3 int