当前位置:  技术问答>java相关

还是jni的中文问题

    来源: 互联网  发布时间:2015-11-10

    本文导语:  我的操作系统是solaris8,标准c 我查了以前一些有关这方面的帖子,但还是无法解决 我只要java中显示c程序中返回的中文字符,但无法正确显示 传出: jstring jline = (*env)->NewStringUTF(env, char_line); 请高手在给讲讲,能...

我的操作系统是solaris8,标准c
我查了以前一些有关这方面的帖子,但还是无法解决
我只要java中显示c程序中返回的中文字符,但无法正确显示
传出:
jstring jline = (*env)->NewStringUTF(env, char_line);

请高手在给讲讲,能给两行例子程序就最好了。

谢谢!!

|
给你两个C函数(工作在C++下):

.h文件:
#include 
#include 

jstring WindowsTojstring( JNIEnv* , char*);
char* jstringToWindows( JNIEnv* env, jstring jstr );

.cpp程序:

jstring WindowsTojstring(JNIEnv* env, char* str) {
jstring rtn = 0;
int slen = strlen(str);
wchar_t* buffer = 0;
if(slen == 0)
rtn = env->NewStringUTF(str); //UTF ok since empty string
else {
int length = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)str, slen, NULL, 0);
buffer = (wchar_t*)malloc(length * 2 + 1);
if(MultiByteToWideChar( CP_ACP, 0, (LPCSTR)str, slen, (LPWSTR)buffer, length ) >0 )
rtn = env->NewString((jchar*)buffer, length);
}
if(buffer)
free(buffer);
return rtn;
}

char* jstringToWindows(JNIEnv* env, jstring jstr)
{
int length = env->GetStringLength(jstr);
const jchar* jcstr = env->GetStringChars(jstr, 0);
char* rtn = (char*)malloc(length * 2 + 1);
int size = 0;
size = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)jcstr, length, rtn, (length*2+1), NULL, NULL);
if(size ReleaseStringChars(jstr, jcstr);
rtn[size] = 0;
return rtn;
}

    
 
 

您可能感兴趣的文章:

  • 怎样在服务器端判断客户使用的浏览器是使用的简体中文的还是英文的还是日文的或者其他的?
  • 如何判断输入的是中文还是非中文?
  • ubantu中国站上下的CD镜像包含中文版本还是没有中文版?
  • gdbtui 中文注释乱码?设置了charset为UTF-8还是乱码,怎么办?
  • 还是中文问题。
  • 还是中文问题……sigh
  • 如何区分数据是英文还是中文?
  • RH7.3的中文支持还是不敢恭唯,郁闷~~~~~~~~~~~
  • 在 linux 使用Java 的兄弟请帮忙--还是中文问题???
  • 还是javamail附件中文名字显示问题。
  • 小女子也想玩玩Linux,初玩是用中文版的还是英文版的比较合适?
  • 请问怎样判断一个字符是中文字符还是英文字符?(空)
  • 想学linux下程序开发,不知道买哪本书好《UNIX环境高级编程》(中文第一版)还是《UNIX环境高级编程》(英文第二版)
  • 还是昨天的url传递中文问题,又出现新的问题
  • 怎么把中文参数从弹出窗口传递到其父窗口?(用URLEncoder.encoder传过去还是乱码).
  • 唉!还是中文问题!!!!!!!!!!
  • ubuntu8.10安装Adobe Reader后还是无法显示中文!
  • 还是中文问题,救急
  • JSP中的中文问题,我还是解决不了(快来抢分呀)
  • 我想买书,是买THINKING IN JAVA中文第二版好还是买JAVA核心技术卷一 + 卷二好?
  • 还是那个关于update的问题呀,还是解决不了呀?
  • swing的问题还是jbuiler的问题??
  • ./configure时,提示 missing /usr/.../version.h文件?是系统问题?还是安装程序的问题?
  • 还是关于消息框的问题 applet中的问题
  • 还是一个安装问题,周末一直为这个问题缠着
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • 是delete的问题还是系统问题
  • 新手问题,在linux下c/c++开发是在图形界面下还是字符界面下进行?
  • 速急!!!还是有关于汉入问题!!!大哥们速帮忙,小弟在线等待!!!
  • 还是linux安装的问题
  • 问一个弱弱的问题,linux该怎么念?是理纳克斯还是留尼克斯?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • jsp+bean还是jsp+ejb还是jsp+servlet还是asp+activex好?
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • 请问ResultSet返回的是全部数据,还是指针,还是其他什么?
  • 大家以后的发展方向是什么?能交流一下么?是就想学好专业知识,打一辈子工?还是自己开公司?还是要考研究生,使自己提高一个档次?还是想办法出国深造?发言比有分!!!
  • 程序里如何判断光驱里的是DVD盘,还是CD盘,还是一般的CD数据盘
  • linux新手想请问大家你们在linux下通常用什么开发语言和工具(C多点还是C++多点还是pascal ?还有工具方面?)
  • 你的桌面用的是LINUX还是UNIX还是WINDOWS?
  • 请问EJB高手,EJB主要用在b/s方式还是c/s,还是两这都可?有用过jBoss的吗?有配置文档吗?一定给分!!
  • linux下的c/c++语言开发,最好的ide是gcc还是kylix还是其他
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 信号可靠还是不可靠,取决与信号本身还是signal()/sigaction()的区别?
  • 学习JAVA用JSDK开发还是VJ++?有什么区别吗?还是一样?
  • 我以前是搞DELPHI的,现在想学JAVA,请教各位大侠你们用的都是什么开发环境是JBuild,还是VJ++,还是其他的(参与者都有分)
  • 求教:LIUNX 学开发还是学主机维护。。??
  • 请问各位现在用JAVA为开发工具的多,还是用C++的多?
  • REDHAT8.0还是REDHAT9.0?
  • linux下的编程主旨思想是在面向过程还是面向对象的?谢谢!!
  • 诸位写驱动是先找一个类似的程序更改还是从头些?
  • 有一定基础后,请问应该先看Linux内核还是驱动呢?
  • 如何判断自己所用的机子是32位还是64位的?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3