JNI把Java中的对象当做一个C指针传到本地方法中,这个指针指向JVM中的内部数据结构。使用这种指针的目的是不希望JNI用户了解JVM内部数据结构。对于该类指针所指结构的操作都要通过JNI方法进行。
在学习Java与C/C++字符串传递之前先明确几个关于字符编码的基本概念:
a) Java内部使用16bit的Unicode编码(utf-16)来表示字符串;
b) Jni内部使用utf-8编码来表示字符串
c) C/C++使用的是原始数据,ascii是一个字节,中文一般是GB2312编码
1、 Java字符串——>C++字符串
这种情况下java中的字符串是utf-16编码的,C++得到的输入时jstring类型。这时可以利用jni提供的两种函数将jstring转成C++字符串。一个是GetSt