如何在环境中将 UTF-8 字符串转换为 UCS-2 字符串,反之亦然:
C++98
允许Boost,但不允许其他库(例如,不允许 Microsoft 或 3d 派对)
到目前为止我学到了:
我需要 UCS-2,而不是 UTF-16。所以utf_to_utf()单独是行不通的。
在 C++98中std::codecvt_utf8不可用。
也不可用: std::locale locale(" en_GB.utf8 ") (但有希望的方法?)
我不敢相信这在 C++98 中这么难?
如何在环境中将 UTF-8 字符串转换为 UCS-2 字符串,反之亦然:
C++98
允许Boost,但不允许其他库(例如,不允许 Microsoft 或 3d 派对)
到目前为止我学到了:
我需要 UCS-2,而不是 UTF-16。所以utf_to_utf()单独是行不通的。
在 C++98中std::codecvt_utf8不可用。
也不可用: std::locale locale(" en_GB.utf8 ") (但有希望的方法?)
我不敢相信这在 C++98 中这么难?
好的,我现在只是写了自己的转换函数。您可以在以下位置找到它:
https://github.com/RoelofBerg/Utf8Ucs2Converter
第一次测试效果很好。请审查和贡献。
对于未来的读者:免费许可证,只需使用它,但如果发现任何错误,请提供错误修正。
玩得开心:) Roelof Berg