我正在从Java应用程序中使用几个String参数调用JNI方法。
我正在使用env->GetStringChars(arg1, 0 );
来获取字符串。
问题是我有时会得到一些额外的特殊字符或字符串被截断。
最佳答案
在Java中,字符是16位字符(UTF-16编码)。如果在C语言中将它们视为普通的char*
,则会看到nul字节(通常在String的末尾使用)或其他特殊字符。
也许您应该使用避免使用nul char的UTF编码。您仍然需要处理UTF编码的特殊字符。
http://java.sun.com/docs/books/jni/html/objtypes.html
关于java - JNI的字符串获取额外的字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6664345/