0
当我插入带有重音的字符串,它不将文件“FAKE.txt”(UTF-16编码)带有重音宽字符串不输出
std::wifstream ifFake("FAKE.txt", std::ios::binary);
ifFake.imbue(std::locale(ifFake.getloc(),
new std::codecvt_utf16<wchar_t, 0x10ffff, std::consume_header>));
if (!ifFake)
{
std::wofstream ofFake("FAKE.txt", std::ios::binary);
ofFake << L"toc" << std::endl;
ofFake << L"salut" << std::endl;
ofFake << L"autre" << std::endl;
ofFake << L"êtres" << std::endl;
ofFake << L"âpres" << std::endl;
ofFake << L"bêtes" << std::endl;
}
结果中显示出来(FAKE.txt ) toc salut autre
重音字的其余部分没有被写入(流错误我猜)。
该程序是用g ++编译的,源文件编码是UTF-8。
我注意到与控制台输出相同的行为。
我该如何解决这个问题?
谢谢!你对g ++是正确的。我会尝试你的第二个解决方案。 – Aminos