轉載 原文 https://blog.csdn.net/churuxu/article/details/49999575java
ndk開發中,將c/c++的UTF8編碼的字符串轉換成java字符串,使用了NewStringUTF接口。
當字符串中包含emoji字符時,在有些手機上正常,有些手機會崩潰。
logcat錯誤信息相似:
NewStringUTF input is not valid Modified UTF-8c++
emoji字符utf8編碼佔用4個字節,有些手機下,NewStringUTF驗證有效性會認爲是錯誤的UTF8編碼。編碼
解決方法:.net
先將UTF8編碼的字符串轉成UTF16編碼,再調用jni的NewString接口。htm