是否可以注入 std::fstream 以便包含 UTF-8 编码的 std::string 可以流式传输到 UTF-16 文件?
我使用 utf8-to-utf16 方面尝试了以下操作,但结果文件仍然是 UTF-8:
std::fstream utf16_stream("test.txt", std::ios_base::trunc | std::ios_base::out);
utf16_stream.imbue(std::locale(std::locale(), new codecvt_utf8_utf16<wchar_t,
std::codecvt_mode(std::generate_header | std::little_endian)>);
std::string utf8_string = "\x54\\xE2\x83\xac\x73\x74";
utf16_stream << utf8_string;
对 codecvt_utf8_utf16 方面的引用似乎表明它可用于读取和写入 UTF-8 文件,而不是 UTF-16 - 这是正确的,如果是这样,是否有一种简单的方法来做我想做的事情?