在string,u16string&之间转换使用libstdc ++的u32string

时间:2013-04-26 09:55:54

标签: c++ string unicode c++11 unicode-string

我发现这个主题Convert between string, u16string & u32string,解决方案(看起来非常棒)只能使用libc ++而不是libstdc ++。目前libc ++不可用 - 在Windows上很难编译并且不能正常工作。

是否有使用C ++ 11和libstdc ++在这些表示之间进行转换的方法,它适用于所有平台?

我特别感兴趣的是将u32_string转换为字符串(utf8),反之亦然。

2 个答案:

答案 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 ++。