5

我发现这个主题在字符串、u16string 和 u32string 之间转换,并且解决方案(看起来真的很棒)只使用 libc++ 而不是 libstdc++。目前 libc++ 不可用 - 很难编译并且在 Windows 上无法正常工作。

是否有任何方法可以使用 C++11 和 libstdc++ 在所有平台上进行转换?

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

4

2 回答 2

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 发行版中。

于 2013-04-28T14:34:16.847 回答
0

您可以使用 utf8cpp ( http://utfcpp.sourceforge.net/ ),它将这些转换器提供为易于使用的 C++。

于 2013-04-28T14:43:25.833 回答