【发布时间】:2016-10-25 15:20:10
【问题描述】:
对于 UTF-16,我们可以同时读取并转换为wchar。例如,
std::wifstream* file = new std::wifstream(name, ifstream::binary);
locale lo = locale(file->getloc(), new std::codecvt_utf16<wchar_t, 0x10ffff, std::little_endian>);
file->imbue(lo);
我怎样才能对 UTF-32 输入做同样的事情?
【问题讨论】:
-
来自std::codecvt_utf16,你可以使用
std::codecvt_utf16<char32_t> -
@danh,也许不是完全重复的 - 虽然我猜你可以将
std::codecvt_utf16<char32_t>替换为imbue()? (我真的不知道;我自己只需要 UTF-8) -
这是在 Windows 中吗?你使用什么编译器/版本?