JNA/JNI调用三方dll文件时出现乱码

先说方法:

在实现的类里,利用静态代码块加上这句:System.setProperty("jna.encoding","GBK");

如我的JNA类是:

public interface Control extends Library{
	
	Control INSTANCE = (Control) Native.loadLibrary("dll文件名",Control.class);
    //接口方法
    //略、、、

}

然后我的实现类里:

public class Helper {

	static Control INSTANCE = null;
	static {
		INSTANCE = Control.INSTANCE;
		System.setProperty("jna.encoding","GBK");
	}
    //方法略
}

编码参数也不一定是GBK,但是我的三方库是GBK编码所以这里是GBK,根据个人情况而定。

吐槽:

看了网上一堆修改文件编码格式的方法,是可行的,但是太繁琐了。。。我本身项目是UTF8编码的。本来这个DLL我已经用在了好几个项目里,因为这个问题我都给以前的项目编码是GBK的,然后无意中看到了这个方法,特此记录,神来之笔(就是我见识短浅不知道。。。。)。

但是目前还有就是不知道有没有64位JDK能调用32位DLL的方法,如果有路过的大神还希望赐教!

好了,告辞!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值