我发现这个主题Convert between string, u16string & u32string,解决方案(看起来非常棒)只能使用libc ++而不是libstdc ++。目前libc ++不可用 - 在Windows上很难编译并且不能正常工作。
是否有使用C ++ 11和libstdc ++在这些表示之间进行转换的方法,它适用于所有平台?
我特别感兴趣的是将u32_string转换为字符串(utf8),反之亦然。
答案 0 :(得分:2)
C ++ 11中有一种方法可以通过wstring_convert类来实现这一点。
但是,它似乎还没有实现libstdc ++(从gcc 4.8开始)
同样适用于:
codecvt<char16_t, char, mbstate_t>.
codecvt<char32_t, char, mbstate_t>.
codecvt_utf8.
codecvt_utf16.
codecvt_utf8_utf16.
事实上,标题<codecvt>
仍未出现在gcc发行版中。
答案 1 :(得分:0)
你可以使用utf8cpp(http://utfcpp.sourceforge.net/)它为那些转换器提供了易于使用的C ++。