JNI字符串转字节数组指针⽅法//把java的字符串转换成c的字符串
char* Jstring2CStr(JNIEnv* env, jstring jstr)
{
char* rtn = NULL;
jclass clsstring = (env)->FindClass(env,"java/lang/String");
jstring strencode = (env)->NewStringUTF(env,"GB2312");
jmethodID mid = (env)->GetMethodID(env,clsstring, "getBytes", "(Ljava/lang/String;)[B");
jbyteArray barr= (jbyteArray)(env)->CallObjectMethod(env,jstr,mid,strencode); // String .getByte("GB2312"); jsize alen = (env)->GetArrayLength(env,barr);
jbyte ba = (env)->GetByteArrayElements(env,barr,JNI_FALSE);
java数组字符串转数组if(alen > 0)
{
rtn = (char)malloc(alen+1); //"\0"
memcpy(rtn,ba,alen);
rtn[alen]=0;
}
(*env)->ReleaseByteArrayElements(env,barr,ba,0); //
return rtn;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。