当你要从std::u16string
to 时,可以说std::u32string
,std::wstring_convert
不能按预期工作chars
。那么如何使用作为输入std::wstring_convert
在 UTF-16 和 UTF-32 之间进行转换呢?std::u16string
例如 :
inline std::u32string utf16_to_utf32(const std::u16string& s) {
std::wstring_convert<std::codecvt_utf16<char32_t>, char32_t> conv;
return conv.from_bytes(s); // cannot do this, expects 'char'
}
reinterpret_cast
可以吗char
,正如我在几个例子中看到的那样?
如果您确实需要reinterpret_cast
,我已经看到了一些使用字符串大小而不是指针总字节大小的示例。这是错误还是要求?
我知道codecvt
已弃用,但在标准提供替代方案之前,它必须这样做。