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

JNI中文问题

    来源: 互联网  发布时间:2015-03-29

    本文导语:  各位大侠:     在JNI 中将中文字符传给VC,VC不能正确显示(printf).     VC将中文字符返回给JAVA时, 在JAVA中也无法显示.      import java.io.*; import java.util.*; class JniTest  {     public static native String webcall13(String...

各位大侠:
    在JNI 中将中文字符传给VC,VC不能正确显示(printf).
    VC将中文字符返回给JAVA时, 在JAVA中也无法显示.
    
import java.io.*;
import java.util.*;

class JniTest 
{
    public static native String webcall13(String prompt);
    
    static {
        System.loadLibrary("siuweb");
    }
    public static String GBToUnicode(String strIn)
    {
     String strOut = null;
     if(strIn == null || (strIn.trim()).equals(""))return strIn;
     try{
         byte[] b = strIn.getBytes("ISO8859_1"); 
         //byte[] b = strIn.getBytes("GB2312");
         //byte[] b = strIn.getBytes("UTF8");
         //byte[] b = strIn.getBytes("ISO-8859-1");
         
         strOut = new String(b,"GBK");
         //strOut = new String(b,"gb2312");
     }
     catch(Exception e){}
     return strOut;
     }

    public static String UnicodeToGB(String strIn)
    {
byte[] b;
String strOut = null;
if(strIn == null || (strIn.trim()).equals(""))
return strIn;
try{
b = strIn.getBytes("GBK");
strOut = new String(b,"ISO8859_1");
}catch(UnsupportedEncodingException e){}
return strOut;
    }
    
    public static void main(String[] args)
    {
     JniTest test = new JniTest();
    
     //System.getProperties().list(System.out);
     test.webcall1(); 
     int count = test.webcall2(2,5);

String str_tmp;
str_tmp = "JA你webcall3:";
String str_input;
str_input = UnicodeToGB(str_tmp);

     String input = test.webcall13(str_input);
     /* System.out.println("C return string : " + input); */
     String str_output;
     str_output = GBToUnicode(input);
     System.out.println("C return Unicode string : " + str_output);
    }
}

JNIEXPORT jstring JNICALL 
Java_JniTest_webcall13 (JNIEnv *env, jclass obj, jstring a)
{
jstring jstr;
char greeting[100];

const char *str = (*env)->GetStringUTFChars(env,a,0);
wprintf(L"C wprintf java string: %sn", str);
    printf("nC printf java string: %sn", str);
(*env)->ReleaseStringUTFChars(env, a, str);

greeting[0]='';
strcpy(greeting,"abk中cedasdfasd中华人民共和fasdfksdjfhlas");
jstr = (*env)->NewStringUTF(env,greeting);
return jstr;
}


|
不是解决了吗。

    
 
 

您可能感兴趣的文章:

  • 关于JNI的中文问题(急急急急急)
  • linux下JNI给JAVA传递中文的问题
  • 高分求救!JNI与中文的问题!!请知道的朋友帮帮忙!!!
  • 还是jni的中文问题
  • JNI中文问题,100分送上,请笑纳
  • 大家有没有关于jni方面的中文资料,最近要用到。多谢了。
  • JNI的问题
  • jni的一个小问题--路径问题?
  • jni的方法,用java调用c的代码,遇到的问题!
  • jni 问题 急急急 分数不够可以再加
  • solaris 上编译JNI库的问题
  • 我在Thinking in Java中遇到的Jni问题!
  • jni中汉字问题,如何把java中的汉字转化到c中去?
  • JNI中汉字问题。。。
  • 有关JNI的问题?
  • liunx jni编程问题!!!
  • Linux 下JNI编程调用动态连接库的问题,十万火急
  • JNI 中内存管理的问题
  • 【醒目】Unix下用jni调c++编译so库问题
  • 关于JNI的问题
  • 问一个JNI的问题?
  • 最简单的JNI问题请教
  • JNI问题【求助】javah 怎么对一个不是缺省package的类生成头文件?
  • 关于Java本地接口的问题(JNI),分数不是问题
  • Java使用JNI方法调用DLL问题
  • jni调用dll问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编译JNI.h报大量错
  • JNI++
  • javah -jni myclass???在线...
  • 请问如何用jni类来调用一个非java写的外部exe?谢谢!
  • 难道没有人可以告我如何在applet中使用jni方法吗?
  • 听同事说JNI很烂! 很容易出错! 是真的吗? 来着有分!
  • 请问JNI是个什么东西?
  • jni难吗?谁有这方面的资料?
  • 哪儿有JNI的资料?
  • 100分求java +VC6.0使用JNI的最简单例子
  • JNI 助手类 NativeCall
  • JNI代码生成器 JNIGen
  • JNI编程工具 Janet
  • LevelDB JNI
  • 有请写过jni的朋友
  • 哪们有关于JNI的电子书或网上资料,能否给我一份
  • 在JNI编程中创建共享库时(.C->.DLL)(vc6.0环境…………多谢高手指教!
  • 一个巨迷糊的送分题(jni)
  • 关于JNI,保证给分,多谢,急用
  • Linux下的JNI封装 jniexec


  • 站内导航:


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

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

    浙ICP备11055608号-3