1

在我的应用程序中,我使用 ICU UnicodeString 来存储我的字符串。由于我使用了一些与 ICU 不兼容的库,因此我需要将 UnicodeString 转换为其平台相关表示。

基本上我需要做的是逆向处理表单创建新的 UnicodeString 对象 - new UnicodeString(“系统语言环境中编码的字符串”)。

我发现了这个主题 - 所以我知道它可以通过使用 stringstream 来完成。

所以我的回答是,是否可以通过其他更简单的方式完成,而不使用 stringstream 进行转换?

4

3 回答 3

4

我用

std::string converted;
us.toUTF8String(converted);

我们是 (ICU) UnicodeString

于 2015-02-10T10:15:06.933 回答
3

您可以将UnicodeString::extract()与代码页(或转换器)一起使用。实际上为代码页传递 NULL 将使用 ICU 检测到的默认代码页。

于 2010-12-08T17:27:18.713 回答
0

您可以使用ucnv.h- 即中的功能void ucnv_fromUnicode (UConverter *converter, char **target, const char *targetLimit, const UChar **source, const UChar *sourceLimit, int32_t *offsets, UBool flush, UErrorCode *err)。它不是一个很好的 C++ API UnicodeString,但它会工作。

如果可能的话,我建议你坚持使用operator<<你已经在使用的。在任何情况下,它都是在 C++ 中处理词法转换(即字符串到整数/从整数)的标准方法。

于 2010-12-08T15:20:33.130 回答