我的问题是我有一个以 utf8 格式存储在 std::string 中的缓冲区。我想将它作为 wistringstream 来提振精神。如果不将整个 std::string 转换为 std::wstring,我该怎么做呢?我想要一个从 utf8 到系统上任何 wchar_t 的只读 View 的流。
最佳答案
您可以使用u8_to_u32_iterator
。 wchar_t
不足以容纳所有字符。您也可以传递 int32
迭代器来增强精神功能,或者只编写一个包装器,将 int32
迭代器转换为 wchar_t
迭代器。或为此目的使用 u32_to_u16_iterator
。
http://www.boost.org/doc/libs/1_53_0/libs/regex/doc/html/boost_regex/ref/internal_details/uni_iter.html
关于C++使用宽流读取UTF8缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30237530/