但我自己弄个带表情的字符串上传却没有什么问题。
最终确认这是在Android 5.1以下 jstring – char数组 时出的问题。下面通过一个示例来还原这个过程。...通过调用getBytes()方法,会看到对应的byte数组为[-16, -97, -110, -117] ,按16进制输出为[f0, 9f, 92, 8b] 。...定义一个参数为String的native方法,public native String test(String str); ,在对应的C/C++代码中,通过env- GetStringUTFChars获取传入的...在Android 7.1.2的测试机上,native层输出的结果为[f0, 9f, 92, 8b] ,与Java的byte数组是一样的,但是在Android 4.4.4的测试机上,输出结果为[ed, a0...Unicode、UTF-8、UTF-16
可能有人不是很清楚上面那2种byte数组是怎么来的。首先我们要知道,UTF-8和UTF-16都是Unicode的实现。