C ++使用宽流读取UTF8缓冲区

C++ Reading UTF8 buffer using wide stream

我的问题是我有一个 utf8 格式的缓冲区存储在 std::string 中。我想将它作为 wistringstream 来提振精神。如果不将整个 std::string 转换为 std::wstring,我该怎么做呢?我想要一个从 utf8 到系统上任何 wchar_t 的只读视图的流。

您可以使用 u8_to_u32_iteratorwchar_t 不足以容纳所有字符。您也可以传递 int32 迭代器来增强精神功能,或者只编写一个包装器,将 int32 迭代器转换为 wchar_t 迭代器。或为此目的使用 u32_to_u16_iteratorhttp://www.boost.org/doc/libs/1_53_0/libs/regex/doc/html/boost_regex/ref/internal_details/uni_iter.html