Как мы знаем, при записи UTF-8/16 в файл вы должны использовать std::codecvt_utf16
или std::codecvt_utf8_utf16
следующим образом:
std::wofstream WFile("file.txt");
if (!WFile.is_open()) return false;
WFile.imbue(std::locale(WFile.getloc(), new std::codecvt_utf16<az::cChar, 0x10ffff, std::little_endian>()));
WFile << (wchar_t)0xfeff;
WFile << L"日本語|भारतीय|русский язык|?";
WFile.close();
В настоящее время std::codecvt_utf16
и std::codecvt_utf8_utf16
устарели. Итак, какова альтернатива сделать выходной поток для записи UTF-8/16?