我正在从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/

10-12 00:33
查看更多