利用Java的String类来完成字符编码转换
2016-01-15 11:56
417 查看
/** * 利用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-1 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); if (alen > 0) { rtn = (char*) malloc(alen + 1); memcpy(rtn, ba, alen); rtn[alen] = 0; //"\0" } (*env)->ReleaseByteArrayElements(env,barr, ba, 0); return rtn; }
相关文章推荐
- RabbitMQ入门教程 For Java【6】 - Remote procedure call (RPC)
- JVM学习笔记(一)---JVM基本结构
- java中数据类型在方法调用后的变化
- ActiveMQ(5.10.0) - Spring Support
- Eclipse启动报错 java was started but returned code=14
- [资料收集]Java问题解决
- Java将字节转换为十六进制代码分享
- java中数字类型转换
- 安装eclipse中文汉化包后无法打开eclipse
- Java知识四
- 从头认识java-17.4 详解同步(5)- 死锁
- JAVA菜鸟成长记——JNDI
- JAVA中去掉字符串空格的方法
- eclipse workspace libraries 配置文件地址
- 查看java进程
- eclipse各种问题汇总
- Myeclipse报错-Java compiler level does not match 完美解决方法
- 七张图解读Java多线程
- Windows JDK 环境变量配置
- Android Studio项目依赖Eclipse项目