0
我需要將UTF-16字符串轉換爲UTF-8字符串。將JNI UTF-16字符串轉換爲標準C++ UTF-8字符串
const unsigned short *utf16string = ...;
const char *utf8string = convertUTF16toUTF8(utf16string);
任何人都可以幫我找/寫功能const char* convertUTF16toUTF8(const unsigned short* utf16string)
?
不幸的是,類型無法更改,我無法訪問C++ 11。我一直在這個頭上打了幾個小時,並找不到任何解決方案。
請幫幫我。我相信你,StackOverflow!
P.S.如果有人需要知道,我正在使用cocos2d-x做一個遊戲,我試圖用JNI回調來獲取一個字符串。 JNI有GetString...
函數的UTF版本,但根據我自己的經驗和Wikipedia,這些都是錯誤的,所以我需要使用原始函數來轉換字符串。
你在什麼環境?操作系統中可能已經有一個功能。但除此之外,我只需從UTF-16字符串中一次讀取一個代碼點(可能超過兩條短語),然後將其寫爲UTF-8字符,然後重複。要提前分配緩衝區,你可能會猜到它的大小與UTF-16相同或更短,然後在達到限制時重新分配。 – Rup
此代碼正在Android上使用。 –
正如我在問題中提到的,我無法訪問它:( –