利用Java的String类来完成字符编码转换

来源:互联网 发布:淘宝win10专业版激活码 编辑:程序博客网 时间:2024/06/06 03:26
/** * 利用Java的String类来完成字符编码转换 */char* Jstring2CStr(JNIEnv* env, jstring jstr) {char* rtn = NULL;jclass clsstring = (*env)->FindClass(env,"java/lang/String");jstring strencode = (*env)->NewStringUTF(env,"GB2312"); //转换成Cstring的GB2312,兼容ISO8859-1jmethodID 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);if (alen > 0) {rtn = (char*) malloc(alen + 1);memcpy(rtn, ba, alen);rtn[alen] = 0; //"\0"}(*env)->ReleaseByteArrayElements(env,barr, ba, 0);return rtn;}


0 0
原创粉丝点击