Android 从 JNI 中传入 UTF8 的字符到 Java
2010-03-26 21:14:00 来源:WEB开发网由于env->NewStringUTF支持的是 Modified UTF-8,所以这个API不能用来从JNI
中传入标准的UTF8字符到Java。
我们有两种解决方法:
Java代码
ReturnUTF8.java
view plaincopy to clipboardprint?
public class ReturnUTF8 {
static {
System.loadLibrary("ReturnUTF8Jni");
}
public static native byte[] method1();
public static native Object method2();
public static void main(String[] args) {
try {
byte[] buffer = ReturnUTF8.method1();
String s1 = new String(buffer, "UTF-8");
System.out.println("s1 = " + s1);
String s2 = ReturnUTF8.method2().toString();
System.out.println("s2 = " + s2);
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
public class
ReturnUTF8 {
static {
System.loadLibrary("ReturnUTF8Jni");
}
public static native byte[] method1();
public static native Object method2();
public static void main(String[] args) {
try {
byte[] buffer = ReturnUTF8.method1();
String s1 = new String(buffer, "UTF-8");
System.out.println("s1 = " + s1);
String s2 = ReturnUTF8.method2().toString();
System.out.println("s2 = " + s2);
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
# javac ReturnUTF8.java
# javah ReturnUTF8
-> 这里会生成一个ReturnUTF8.h头文件
C++代码
ReturnUTF8.cpp
view plaincopy to clipboardprint?
#include "ReturnUTF8.h"
JNIEXPORT jbyteArray JNICALL Java_ReturnUTF8_method1
(JNIEnv *env, jclass cls)
{
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
更多精彩
赞助商链接