HTMLファイルにはwindows-1254のようなエンコーディングがあり、UTF-8がありますが、実行時エラーが発生する可能性はありますか?C ++側で文字エンコードを変更できますか?char *をバイト配列に変換できますか?そのための可能な解決策は何ですか?
1 に答える
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;
}
乾杯、
于 2012-07-04T08:23:16.680 に答える