簡體   English   中英

如何在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM