社区
Linux/Unix社区
帖子详情
linux下JNI给JAVA传递中文的问题
dic_walter
2007-07-18 05:46:31
我在JNI里面想传递一中文字符串给JAVA,但JAVA里面显示出来是乱码。这个问题在windows下面很好处理。但liunx下如何处理呢,急盼答案!!!!!
...全文
433
23
打赏
收藏
linux下JNI给JAVA传递中文的问题
我在JNI里面想传递一中文字符串给JAVA,但JAVA里面显示出来是乱码。这个问题在windows下面很好处理。但liunx下如何处理呢,急盼答案!!!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dic_walter
2007-09-05
打赏
举报
回复
lovejklife
----------------------
分全部都给你了!!!
wangfengyun521
2007-08-10
打赏
举报
回复
这么好的帖子,顶了!!!
有奖活动,送银饰了~``大家快来看
斑马网软件论坛做活动送银饰啊。不要钱滴。。大家看去,,我已经准备好去抢。。
活动地址:http://club.banma.com/viewthread.php?tid=32496
dic_walter
2007-08-10
打赏
举报
回复
lovejklife
----------------------
好,没问题。我再想想
lovejklife
2007-08-01
打赏
举报
回复
没有其他人讨论了吗,真的没有其他的方法了吗?
再没人来,你就把分全给我吧,呵呵
dic_walter
2007-07-26
打赏
举报
回复
lovejklife(程序员怎么样才能发财呢??)
-----------------------------------------
非常感谢,我用你的方法成功了。哈哈
我再看看还有没有其它的方法,如果有,在这里发布一下
也请各位再提供一些其它的思路,非常感激
lovejklife
2007-07-26
打赏
举报
回复
jclass m_strClass = (m_env)->FindClass("java/lang/String");
dic_walter
2007-07-25
打赏
举报
回复
wjwaterstone()
------------------------
我试过你给我的方法,但中间有些汉字显示正确,有些显示的是乱码。
dic_walter
2007-07-25
打赏
举报
回复
lovejklife(程序员怎么样才能发财呢??)
--------------------------------------------
请问m_strClass是个什么东东?
java小小兵
2007-07-25
打赏
举报
回复
介个就奇怪唠
难道说传入的String编码不一致?
java小小兵
2007-07-24
打赏
举报
回复
public String convert(String s){
try{
return new String(s.getBytes("ISO-8859-1"),"GB2312");
}catch(Exception e){return null;}
}
试试这个
dic_walter
2007-07-23
打赏
举报
回复
mbstowcs( (wchar_t*)buf, buffer, len )的返回值总是1么?
lovejklife
2007-07-23
打赏
举报
回复
我用的方法是java.lang.string类的构造函数来建立JAVA的string类型
------------------------------
//获取java String类方法String(byte[],String)的构造器,用于将本地byte[]数组转换为一个新String
m_strConstructorID = (m_env)->GetMethodID(m_strClass, "<init>", "([BLjava/lang/String;)V");
m_encoding = (m_env)->NewStringUTF("GB2312");
jbyteArray bytes = (m_env)->NewByteArray(strlen(str));//建立byte数组
(m_env)->SetByteArrayRegion(bytes, 0, strlen(str), (jbyte*)str);//将char* 转换为byte数组
return (jstring)(m_env)->NewObject(m_strClass, m_strConstructorID, bytes, m_encoding);//将byte数组转换为java String,并输出
-----------------------------
不知道还有什么好方法
记得告诉我
dic_walter
2007-07-20
打赏
举报
回复
mbstowcs好象办转换了第一个汉字出来?????????
dic_walter
2007-07-20
打赏
举报
回复
自己顶
dic_xiphias
2007-07-20
打赏
举报
回复
帮顶
dic_walter
2007-07-19
打赏
举报
回复
我用过setlocale( "zh_CN.GB2312" ),也是一样的效果
hzcpig
2007-07-19
打赏
举报
回复
setlocale( "zh_CN.GB2312" );
dic_walter
2007-07-19
打赏
举报
回复
JNIEXPORT jstring JNICALL Java_myPackage_myInterface_getErrString
(JNIEnv *env, jclass obj)
{
setlocale( "zh_CN.gbk" );
jstring jstr;
char buffer[256];
GetErrorString( buffer );
strcpy( buffer, "你他是不是" );
//jstr = Char2Jstring( env, buffer );
unsigned short* buf = 0;
int len = MB_CUR_MAX;//mbstowcs( NULL, buffer, strlen( buffer) );
buf = ( unsigned short* )malloc( len*2 + 1 );
if( mbstowcs( (wchar_t*)buf, buffer, len ) > 0 )
jstr = (*env)->NewString( env, (jchar*)buf, len );
if( buf )
free( buf );
return jstr;
}
又努力一把,做出以上代码。
但只显示第一个汉字,真不得了了。晕掉,快来救我啊!!!!
dic_walter
2007-07-19
打赏
举报
回复
哦,补充一下,我要传递的是中文字符
dic_walter
2007-07-19
打赏
举报
回复
/*取得错误信息*/
JNIEXPORT jstring JNICALL Java_SafePackage_common_getErrString
(JNIEnv *env, jclass obj)
{
jstring jstr;
char buffer[256];
GetErrorString( buffer );
jstr = Char2Jstring( env, buffer );
return jstr;
}
这是我的代码,返回类型是jstring
现在的问题返回后,JAVA得到的字符串是乱码的。
现在要做的是Char2Jstring中,如何将char*的转换成jstring类型的才不会出现乱码
加载更多回复(3)
Java
JNI
调用动态库(
Linux
、Windows)的实现步骤
###
Java
JNI
调用动态库(
Linux
、Windows)的实现步骤 #### 一、概述
Java
Native Interface (
JNI
) 是一种标准的
Java
接口,它允许
Java
代码和其他语言(如 C 或 C++)编写的代码进行交互。通过
JNI
,
Java
应用...
如何利用
JNI
实现
Java
插件开发
这意味着该方法的实际实现位于C++代码中,并通过
JNI
接口暴露给
Java
。 - `extractAbstractFrameFromVideo`方法则封装了上述native方法,提供了一种更易于使用的接口。用户可以通过
传递
视频文件路径等参数,来获得...
Java
再说
JNI
之实例
Java
再次探讨
JNI
(
Java
Native Interface)这一主题,其主要目的是为了解决
Java
语言与本地代码交互的
问题
。
JNI
在
Java
世界中扮演着重要角色,它允许
Java
程序调用C/C++等本地代码,反之亦然,使得
Java
应用可以利用底层...
java
传递
数据到C(
JNI
)
在这个主题中,我们将深入探讨如何使用
JNI
将数据从
Java
传递
到C。 首先,我们需要理解
JNI
的基本结构。
JNI
接口定义了一组函数,这些函数允许
Java
代码创建本地方法,这些方法可以在C或C++中实现。当
Java
虚拟机(JVM)...
C++库封装
JNI
接口-实现
java
调用c++
Java
程序可以通过
JNI
调用本地方法,这些本地方法是用其他语言编写的,并通过
JNI
接口暴露给
Java
。这个过程涉及到以下几个步骤: 1. **创建本地方法声明**:在
Java
类中,你需要声明本地方法。这些方法没有具体实现,...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章