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

本文详细解析了在启动项目时遇到MalformedInputException异常的原因,指出这通常由解析yml文件时的字符集不匹配引起。通过调整maven编译时的字符集编码为UTF-8,成功解决了该问题。
摘要由CSDN通过智能技术生成

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

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

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

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

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

出现这个的原因,就是解析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>

总结:

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

本人最近开了一个公众号,会讲一些常用的技术,以及面试题,欢迎关注

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值