将char []转换为jcharArray,然后在JAVA中使用原始字节创建一个字符串

时间:2015-04-09 10:51:36

标签: java android c++ string java-native-interface

我是JNI的新手,需要将char[]转换为jcharArray,然后在JAVA中创建String。此String将在Parcel中传递到其他图层。从Parcel读取时,我希望其他组件获得与char数组相同的字节序列。

jchar *jcharBuffer1 = (jchar *)calloc(sizeof(jchar), length+1);

for (count = 0; count<length; count ++) {
    jcharBuffer1[count] = (jchar)c_array[count];
}
jcharArray  str1 = env->NewCharArray(length+1);
env->SetCharArrayRegion (str1, 0, length+1, jcharBuffer1);

这是我的java代码

public void testing(char[] array){
         String test_str = new String(array);
         Setdata(test_str)
}

public void Setdata(String data) {
    Parcel request = Parcel.obtain();
    Parcel resp = Parcel.obtain();
    try {
        .
        .
        request.writeString(data);
    }
}

在整个过程中,我希望转换成字符串后,相同的字节序列到达。这些字节是从服务器的Base64字符串解码输出的。 1. jchar是16位,但C字节是8位。那么我怎样才能达到这个要求呢?

0 个答案:

没有答案