[jni] 06_NDK乱码问题

Android 4.0

NDK乱码问题

步骤:1、在java中声明一个native方法
2、在工程目录下建立一个jni目录,里面建立一个c代码的源程序
3、然后用javah到工程源文件的src目录下生成头文件
4、将生成的头文件.h拷贝到jni目录下
5、然后在jni目录的c代码中,实现逻辑
6、然后在jni目录下,建立一个Android.mk文件 C:\android-ndk-r9b\docs\ANDROID-MK.html
7、然后在cygwin,编译该c源文件
$ ndk-build
8、然后在java代码中使用该native方法
代码:
#include <stdio.h>
#include <jni.h>
#include "cn_zengfansheng_ndk_utf_MainActivity.h"
jstring Java_cn_zengfansheng_ndk_1utf_MainActivity_hello(JNIEnv * env,
        jobject obj) {
    return (*env)->NewStringUTF(env, "你好,中国!");
}
结果:
问题:中文乱码问题
解决:ndk开发的中文乱码问题:
1、低版本ndk 不支持中文 ndk-r4-crystal
iso-8859-1 转码,new String(hello().getBytes("ISO8859-1"),"UTF-8")
2、 高版本的ndk,右击hello.c,properties