参考了网上很多方法,普遍写的比较简单
在http://www.cublog.cn/u/12951/showart.php?id=68851获得了2个方法处理乱码
jstring ->char是
char *JNU_GetStringNativeChars(JNIEnv *env, jstring jstr) 
正常OK
char->jstring是jstring JNU_NewStringNative(JNIEnv *env, const char *str) 
失败在jmethodID jmethod_str = (*env)->GetMethodID(env,jcls_str, "", "([B)V"); 
提示Exception in thread "main" java.lang.NoSuchMethodError: 问题2个
1:如何JNI参数的传出,我需要传出一个消息串,我想应该是jstring 类型,现在我使用
2:char->Jstring转换存在上面说的问题,我该如何使用
char *stemp ="这是JNI传出的消息";
joutstring = (jstring)stemp;
在JAVA里面得到的是空值
System.out.println(joutstring )为空,该如何解决?
2个问题都是50分,谢谢,请大侠们帮助解决
请注意:环境JDK142,HP-UNIX,可能只要LINUX或者其它UNIX环境方法都能通用,但是VC下的方法是不行的VC实现的一些方法包括W_CHAR我都试过了,仍然乱码
使用字节GetByteArrayElements方法也存在一些小问题

解决方案 »

  1.   

    用(*env)->GetStringUTFChars(env, FU, 0);看看了,不要用GetStringNativeChars
    详细的你可以看看这个帖:
    http://community.csdn.net/Expert/topic/5128/5128179.xml?temp=.2409174
      

  2.   

    感谢回答 
    GetStringUTFChars 昨天已经试验过了,不成,
    你给的帖子没有说道返回部分,郁闷中,现在我只能return,其它方法都是乱码
      

  3.   

    char->jstring转换仍然有乱码问题.着急ING
      

  4.   

    已经搞定
    jmethodID jmethod_str = (*env)->GetMethodID(env,jcls_str, "<init>", "([B)V"); 就OK
    感谢 yovn  的答复
      

  5.   

    CSDN莫明其妙,不给分不能结贴...........
    我又不能给自己分....
      

  6.   

    GetStringUTFChars 这个是针对UTF编码的