1.检测代码运行是否是GBK模式
在启动类增加 Properties类
@SpringBootApplication
public class TokenApplication {
public static void main(String[] args) {
Properties properties = System.getProperties();
properties.forEach((key,value)->{
System.out.println("key = " + key);
System.out.println("value = " + value);
});
SpringApplication.run(TokenApplication.class,args);
}
}
打印在控制台我们可以看到
file.encoding 的值 为UTF-8 ,说明我们的idea的file.encoding 是为UTF-8
如若不是可修改:
2.打jar包运行
然后我我们使用maven 将其项目打成jar包,使用java-jar 运行jar包
我们看到 其值变为了GBK,在普通的运行当中我认为是不会出错,因今天我们的项目使用jar包运行,在调用python算法时,报utf-8 codec can't decode byte 此错误,是因为他转为GBK(在idea运行,调用算法没有报错)
3.解决方案
3.1 (第一种方法,较麻烦)换用运行命令
我们之前使用的是java -jar 我们在他后边加上 -Dfile.encoding=utf-8
新命令: java -jar -Dfile.encoding=utf-8 jar包 运行
我们看到打印的结果为
其已经修改, 这时候他就已经是UTF-8了
这样我们就解决了其file.encoding 为GBK 的问题,但是我们不能总是java -jar 在加上他
我们可以写一个cmd脚本来运行此命令,但同样我们可以使用第二种更为简单的方法
3.2(第二种方法,简单)配置环境变量
同样我们可以再电脑的环境变量中添加
key:JAVA_TOOL_OPTIONS value: -Dfile.encoding=utf-8
添加之后我们保存 ,这时候我们再泳普通的 java -jar 来运行这个jar包