我有一個char *(包含utf-8字符串),我想傳遞給ICU將其轉換爲ANSI(ISO-8859-6)。不幸的是,似乎大多數ICU功能都採用UChar而不是char *。我可以將char *轉換爲ICU中的UChar嗎?
如何進行此轉換?
我有一個char *(包含utf-8字符串),我想傳遞給ICU將其轉換爲ANSI(ISO-8859-6)。不幸的是,似乎大多數ICU功能都採用UChar而不是char *。我可以將char *轉換爲ICU中的UChar嗎?
如何進行此轉換?
你看過文檔嗎? 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));
「包含Unicode字符」= UTF-8? – kennytm 2011-05-10 17:58:49
'char *'作爲一種類型沒有給出底層編碼的指示; *編碼*是重要的部分。 – ildjarn 2011-05-10 18:00:37
@KennyTM yes utf-8(謝謝我編輯了這個問題) – Abdelwahed 2011-05-10 18:04:09