【发布时间】:2011-07-26 08:58:27
【问题描述】:
使用 JNI,我将值从文件传递到 java。 但是有时会发生此错误/警告:
JNI WARNING: illegal continuation byte 0xc0
string: '���������������������'
in Lcom/package/project/parser;.getSong (Lcom/package/project/vo/songVo;Ljava/lang/String;)I (NewStringUTF)
我读到在某些情况下获取的字符串不是 UTF8,如果是这样,我如何转换并将解析的 char[] 传递给字符串以避免再次出现此错误/警告?
【问题讨论】:
-
你知道数据的实际编码是什么吗?
-
文件可能有不同的编码,最好期待因为我正在解析来自不同来源的文件,所以它可能有特殊字符等......我读过这个(@987654321 @),但是我如何“先将此字符串转换为 UTF8(又名“多字节”),然后调用 NewStringUTF()。”...?
-
所以它可能是 any 编码,而您实际上并不知道?您是否需要将这些数据作为
String处理? -
是的,Jstring 然后将其作为 String 添加到对象类中。现在我像这样传递 Jstring: (*env)->SetObjectField(env, allValues, fieldTitle, (*env)->NewStringUTF(env, song->header->title));
-
@IsisBlack 让我们continue this discussion in chat
标签: string encoding utf-8 java-native-interface bytearray