将字符串转换为Unicode十六进制表示并返回C ++

时间:2013-08-26 10:33:34

标签: c++ unicode encoding utf-8 character-encoding

我想将一个字符串转换为一个字符串,该字符串包含Unicode十六进制表示法中给定字符串的所有字符,然后再返回。目标语言是C ++。

例如,给定德语单词Hände,我希望能够将此字符串转换为它的Unicode十六进制表示法U+0068 U+00E4 U+006E U+0064 U+0065,并将其转换回原始表示形式{{ 1}}。

如何在C ++中实现?

1 个答案:

答案 0 :(得分:2)

根据你的评论,是什么阻止你使用这个简单的对话?

std::u16string in = u"Hände";
stringstream out;

for (auto x : in)
    out << hex << "U+" << x << " ";

cout << out.str();

输出:

U+48 U+e4 U+6e U+64 U+65