jni中的汉字问题

jni中的汉字问题

ID:31707923

大小:65.81 KB

页数:6页

时间:2019-01-17

jni中的汉字问题_第1页
jni中的汉字问题_第2页
jni中的汉字问题_第3页
jni中的汉字问题_第4页
jni中的汉字问题_第5页
资源描述:

《jni中的汉字问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Jni中的汉字问题!!!急!!!!!!!!!!!!!!!!!!!!!楼主soyol()2003-04-0914:09:55在Java/J2SE/基础类提问//JniSample.javapublicclassJniSample{〃声明所需原牛•函数:privatenativevoidShowMessage(Stringmsg);static{//linuxb'装载动态库:System.load(,7usr/lib/Msg.soH);}〃用main函数测试:publicstaticvoidmain(String[Jargs){JniSample

2、app=newJniSample();app.ShowMessage(nGeneratedwithJNI111文字符”);//JniSample.c#include#include#includeHJniSample.hMJNIEXPORTvoidJNICALLJava_JniSample_ShowMessage(JNIEnv*env,jobjectjObjJstringjMsg){char*msg=(*env)->GetStringUTFChars(envjMsg,O);printf(HTestJNI中文信息

3、:%sH,msg);(*env)->ReleaseStringUTFChars(envjMsg,msg);}在linux下编译好,运行后结果为:TestJNI中文信息:GeneratedwithJNI+乱码哪位高手能帮个忙,多谢!!!!!问题点数:100、回复次数:8Top1楼jczjczjcz(Golden)回复于2003-04-0914:52:38得分20给你一个转换类publicclassCharsetProcess{publiciCharsetProcess(){/publicstaticvoidmain(String[]args

4、){publicstaticStringU2C(Strings)Stringstr=s;tryfiif(str==null)returnstr;byte[]u=str.getBytesC'iso-8859-r');}returnnewString(u,uGB2312M);catch(java.io.UnsupportedEncodingExceptione)e.printStackTrace();returnstr;}1Top2楼dyroro(粗线条)回复于2003-04-0915:00:36得分20不要使用String传递进去,转换成byt

5、e[],然后就很好处理J-Top3楼soyol()回复于2003-04-0915:20:37得分0谢谢!正在试Top4楼zhaoao5958(不会游泳的鱼)回复于2003-04-0915:33:52得分20好了吗?Top5楼soyol()回复于2003-04-0915:58:00得分0这种方法是可行的!明天结帐!可以说一说原因,或是还有其他方法吗?我在自制的文本框中滚动时,每次光标必须动两格,否则又乱了我的中文平台是zhconTop6楼cooleyes(眼睛)回复于2003-04-0921:10:23得分20不用转成Byte的直接传,用两个辅

6、助函数就行了/**关于下面两个辅助函数:以前我是直接使用JNI的API函数env->GetStringUTF()(好像是这个名字,我有点忘了)和env->NewStringUTF()的。但是这两个函数对本地的GB2312(GBK)编码有问题,也就是说中文会有问题。因为Java是采用Unicode作为字符串编码的。在JNI中只有四个函数GetStringUTF,NewStringUTEGetStringChars,NewString,前两个使用UTF8(可变字节),后两个是使用Unicode字符(16位双字节),而本地的C程序时使用GB2312

7、或者GBK编码的,这样就会产生编码错误,导致乱码。所以采用WideCharToMultiByte和MultiByteToWideChar这两个函数把本地的GB2312和GBK码换成Unicode16编码,再使用Jni函数来转化成JavaString.*/IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIH〃辅助函数:char*jstringToWindows(JNIEnv*envjstringjstr);〃功能:将Java的Unicode字符串转化成本地字符数组;/////////////////////

8、//////////////////////////////////////////////////////////char*jstringToWindows(JN

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。