问题分析:

java.nio.charset.MalformedInputException: Input length = 1
百度了很久,网上说的千篇一律,

  • 有的说,把yml复制到txt再复制回来
  • 有的说,设置idea的utf-8环境

这些根本没有根治这个问题。

1
org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1

出现这个的原因,就是解析yml文件时,中文字符集不是utf-8的原因,
但是通过cmd命令,mvn clean compile 后,项目又可以成功运行
找了很久问题,使用eclipse和idea同时测试,最终发现,是maven在项目编译时,默认字符集编码是GBK

解决方法:检查pom文件

我们首先需要在pom文件中设置,编译时编码utf-8即可,如果解决不了进行第二步

1
2
3
4
5
6
7
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>