如何从wchar_t解码char

时间:2013-11-22 11:51:26

标签: c++ c visual-c++

我有一个编码的wstring。因为wchar_t是16位宽,我们已经编码了2个字符。

wstring e_str = L"A B C \uffff";
....
wstring temp;
....
wchar_t value = e_str[i]; /* e_str = encoded wstring */
....
if (value > L'\u00ff) {
    temp.append(1,(character-(character % 256))/256);
    temp.append(1,character % 256);
}
编码后

变为"A B C \uÿÿ"

我想要做的是返回原始字符串(e_str)。

1 个答案:

答案 0 :(得分:0)

尝试:

char loChar=(char)(value);
char hiChar=(char)(value>>8);