jni函数参数如何传递中文字符串? ????JAVA里的String是UNICODE的啊!!你要这么用吧!printf(L"%s",str); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说错了!!!不好意思java里的String是unicode的在DLL里只有用能输出unicode的函数才可以输出来。 没做过,说说想法:String有一个构造函数可以指定编码的如String s = new String("你好", "US-ASCII");这样试试。我记得我以前用C/C++的时候字符编码是两个ASCII组合起来的,好像还是不带符号的byte表示的扩展ASCII码,记不太清了,所以我觉得用移位的方法可能不行。没做过,我也来学习。 错了,构造函数是byte[] ba = new byte[10];...String s = new String(ba, "US-ASCII"); 我试过了,上面提到的方法还是不行。Unicode的编码和扩展ASCII码表不好一一对应,而且需要转换成无符号byte,Java中没有现成的无符号byte,所以还只有自己转。建议还是找一找C/C++下面支持Unicode的函数。还有什么好方法,我也学习学习。 用byte来传递参数。native void test(byte[] str); 解决了,可以参照日文的传递的例子。http://www5.big.or.jp/~tera/Labo/jni/jni2.html 成员变量和局部变量的区别是什么? 【急】关于键盘事件的问题 怎样通过名字获得类成员的reference? 一个新手的迷茫(散分) jdbc驱动类型分类 求汉字与拼音的对照表(有声调的最好) 这个问题有实现的可能吗? 一个菜鸟级的存储过程问题 在广州搞了一阵子的java,不知道深圳可以拿几K?真的没钱啊现在。 实现Comparable显示问题 BufferedReader 谁敢进来领分???
String有一个构造函数可以指定编码的如
String s = new String("你好", "US-ASCII");
这样试试。我记得我以前用C/C++的时候字符编码是两个ASCII组合起来的,好像还是不带符号的byte表示的扩展ASCII码,记不太清了,所以我觉得用移位的方法可能不行。没做过,我也来学习。
byte[] ba = new byte[10];
...
String s = new String(ba, "US-ASCII");
Unicode的编码和扩展ASCII码表不好一一对应,而且需要转换成无符号byte,Java中没有现成的无符号byte,所以还只有自己转。
建议还是找一找C/C++下面支持Unicode的函数。还有什么好方法,我也学习学习。
native void test(byte[] str);
http://www5.big.or.jp/~tera/Labo/jni/jni2.html