我有一个
int val = 0x1234;
并且想要获取该数字的 std::wstring
(ሴ)
int val = 0x1234;
std::wstring wstr = to_wstring(val) ( this gives me L"4660" which is not what I want !)
std::wstring wstr_OK = ???? ( it should give me the character ሴ)
std::to_wstring
(以及std::to_string
)正在创建值的字符串表示形式。int
,它将创建一个字符串,其中每个数字 都会转换为代表它的字符。
例如,1
将表示为字符
'1'
(它具有不同的数值 - 例如,如果这是 ascii,则为 49)。在您的情况下,您已经知道所需字符的数值,因此您可以简单地用它分配
wstring
的元素:
std::wstring wstr;
wstr.resize(1);
wstr[0] = val;
或更简单地说:
std::wstring wstr(1, val);
注:
上述解决方案通常假设数值确实可以存储在一个 wstring
元素中,即
wchar_t
。您使用的特定代码似乎就是这种情况(
0x1234
)。