前言:在使用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