将十六进制转换为unicode字符

时间:2011-01-23 08:37:59

标签: c++ unicode character hex

在C ++中,我想将十六进制字符串保存为文件作为unicode字符 例如:0x4E3B保存到文件--->主

感谢任何建议或想法。

1 个答案:

答案 0 :(得分:1)

什么编码?我假设是UTF-8。

什么平台?

如果您在Linux下,那么

std::locale loc("en_US.UTF-8"); // or "" for system default
std::wofstream file;
file.imbue(loc); // make the UTF-8 locale for the stream as default
file.open("file.txt");   
wchar_t cp = 0x4E3B;
file << cp;

但是,如果你需要Windows,那就完全不同了:

您需要将代码点转换为UTF-8。很多种方法。如果它大于0xFFFF然后将其转换为UTF-16然后搜索如何使用WideCharToMultiByte,然后保存到文件。