转载  原文 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/201112/310128.htm

06-26 13:17