【发布时间】:2013-04-20 11:05:11
【问题描述】:
我发现了这个主题Convert between string, u16string & u32string 并且解决方案(看起来非常棒)仅使用 libc++ 而不是 libstdc++。目前 libc++ 不可用 - 难以编译且在 Windows 上无法正常工作。
是否有任何方法可以使用 C++11 和 libstdc++ 在所有平台上进行转换?
我对将 u32_string 转换为字符串 (utf8) 以及反之亦然特别感兴趣。
【问题讨论】:
-
从 32 位 Unicode 字符串转换为 utf8 非常简单,大约 10 行代码。你有什么理由不能只写代码?将 utf8 转换为 32 位 Unicode 字符串并不难。这些格式简单且有据可查。
-
我喜欢使用经过验证的库,而不是自己弄乱它。我不知道它这么简单,但我确信以前有人做过,所以我很想使用它——我非常相信代码的可重用性;)
-
为了更容易调试 Unicode 文本问题(任何处理文本的程序员都不可避免地会遇到),学习 UTF-8 和 UTF-16 编码/解码算法很可能是个好主意.一旦你了解了 Unicode 的工作原理,你就可以重新评估它们是否值得重用或编写自己的。 C++ 标准 Unicode 转换函数在
locale/codecvt.
标签: c++ string unicode c++11 unicode-string