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