Jna char java_成功解决JNA中,C++的char* 到 JAVA的String传值时的中文乱码

我真是个悲剧,最近在用java的JNA写一个调用c++的dll,进行PE文件分析的程序!结果遇到一个大问题,找了2天都没有解决。

问题是这样的:

我在vc中导出的函数PEANALYZER_API char* GetFileName(void);

#ifdef PEANALYZER_EXPORTS

#define PEANALYZER_API __declspec(dllexport)

#else

#define PEANALYZER_API __declspec(dllimport)

#endif

PEANALYZER_API char* GetFileName(void);

函数中返回值的类型用的char*。

在java这边定义函数public String GetHeaderName(int HeaderIndex);

public String GetHeaderName(int HeaderIndex);

返回值类型用String来接收传来的char*。

英文当然没有问题,但当我使用中文的时候,悲剧就发生了,一堆乱码。我Goolge了两天,各种方法,各种编码转来转去都没有解决。什么byte-》char啊,什么char—》byte,都不行,我无语了!,最后无奈之下,我试了试将eclipse(JAVA开发我当然用这个好东西啦!)我原先设置的默认的编码“UTF-8”改成了“inherited from container gb18030”。

这个时候奇迹发生了,中文显示正常,我真是个大悲剧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值