十六进制转换成Unicode字符

问题描述:

在C++中,我想十六进制字符串转换成文件保存为Unicode字符 例:0x4E3B保存到文件--->主十六进制转换成Unicode字符

任何建议或想法表示赞赏。

+1

使用C++语言标记,否则很多能够回答您的问题的人将永远不会看到它。 – 2011-01-23 08:40:23

+0

那么,你有什么尝试? – 2011-01-23 08:47:01

什么编码?我假设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,然后保存到文件。