1. 程式人生 > >jni介面NewStringUTF崩潰

jni介面NewStringUTF崩潰

轉載  原文 https://blog.csdn.net/churuxu/article/details/49999575

 

ndk開發中,將c/c++的UTF8編碼的字串轉換成java字串,使用了NewStringUTF介面。


當字串中包含emoji字元時,在有些手機上正常,有些手機會崩潰。


logcat錯誤資訊類似:
NewStringUTF input is not valid Modified UTF-8

 

emoji字元utf8編碼佔用4個位元組,有些手機下,NewStringUTF驗證有效性會認為是錯誤的UTF8編碼。


解決方法:

先將UTF8編碼的字串轉成UTF16編碼,再呼叫jni的NewString介面。

http://developer.51cto.com/art/