JNI - 将html文件的内容从C端传递到Java端

时间:2012-07-04 06:24:02

标签: android java-native-interface

HTML文件的编码类似于windows-1254而且我有UTF-8,它是否可能导致运行时错误? 我可以在C ++端更改字符编码吗? 我可以将char *转换为字节数组吗? 有什么可能的解决方案?

1 个答案:

答案 0 :(得分:0)

请看这里

http://java.sun.com/docs/books/jni/html/other.html (“8.2编写国际化代码”一节)

您可能有兴趣将本机编码字符串转换为jstring(并最终将其传递给java端,是JNU_NewStringNative

jstring JNU_NewStringNative(JNIEnv *env, const char *str)
 {
     jstring result;
     jbyteArray bytes = 0;
     int len;
     if ((*env)->EnsureLocalCapacity(env, 2) < 0) {
         return NULL; /* out of memory error */
     }
     len = strlen(str);
     bytes = (*env)->NewByteArray(env, len);
     if (bytes != NULL) {
         (*env)->SetByteArrayRegion(env, bytes, 0, len,
                                    (jbyte *)str);
         result = (*env)->NewObject(env, Class_java_lang_String,
                                    MID_String_init, bytes);
         (*env)->DeleteLocalRef(env, bytes);
         return result;
     } /* else fall through */
     return NULL;
 }  
欢呼,