我有一个char *(包含utf-8字符串),我想传递给ICU将其转换为ANSI(ISO-8859-6)。不幸的是,似乎大多数ICU功能都采用UChar而不是char *。
如何进行此转换?
答案 0 :(得分:4)
你看过文档了吗? UnicodeString::fromUTF8
脱颖而出......
// given char* str
UnicodeString ustr = UnicodeString::fromUTF8(StringPiece(str));
我假设您知道如何使用UnicodeString::extract
将ustr
转换为所需的代码页。
答案 1 :(得分:1)
您可以使用静态成员函数FromUTF8
将UTF-8 StringPiece
转换为UnicodeString
。所以,如果你有一个char *,你可以像这样转换它:
const char* str;
size_t len;
UnicodeString ucs = UnicodeString::FromUTF8(StringPiece(str, len));