欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot启动报错java.nio.charset.MalformedInputException: Input length = 2解决方案

程序员文章站 2022-04-28 11:58:34
...

最近新搭的一个项目,启动时,会报MalformedInputException这个异常,

百度了很久,网上说的千篇一律,

有的说,把yml复制到txt再复制回来

有的说,设置eclipse的utf-8环境

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

SpringBoot启动报错java.nio.charset.MalformedInputException: Input length = 2解决方案

出现这个的原因,就是解析yml文件时,中文字符集不是utf-8的原因,

但是通过cmd命令,mvn clean compile 后,项目又可以成功运行

找了很久问题,使用eclipse和idea同时测试,最终发现,是maven在项目编译时,默认字符集编码是GBK

所以我们只需要在pom文件中设置,编译时编码utf-8即可

  代码如下:

<properties>
    <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>

总结:

这个问题,在一般成熟的项目里面是不会出现的,他一般出现在新建的项目上面,因为一般新建的项目有些配置不够完善,这一块是需要注意的地方。