前言:在使用idea启动项目时设置了全局编码和文件编码都是utf-8启动正常,但是打成jar包在windows环境启动报错 org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
原因是windows默认的编码是gbk,使用java -jar启动jar包时会默认使用系统环境编码,所以导致和配置文件的UTF-8不一致
1、启动时指定编码
使用java -jar命令时指定文件编码
java -jar -Dfile.encoding=utf-8 xx.jar
2、修改系统环境编码
一般情况下不要修改windows的系统编码,默认为gbk即可,建议使用第一种方式指定启动编码。
而liunx系统一般情况下是UTF-8编码,所以使用java -jar命令启动不会有问题。
查询liunx系统编码:
echo $LANG