在C ++中,我想将十六进制字符串保存为文件作为unicode字符 例如:0x4E3B保存到文件--->主
感谢任何建议或想法。
答案 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,然后保存到文件。