目录
2.查看application.yml的编码格式,是不是UTF-8
环境信息:
idea2021.1.1(注:如果是其它版本的idea,也可能会出现这个问题)
SpringBoot 2.1.15.RELEASE
问题描述:
用idea启动SpringBoot项目的时候,控制台报错了:
java.lang.IllegalStateException: Failed to load property source from 'file:/D:/.../classes/application.yml' (classpath:/application.yml)
...
Caused by: org.yaml.snakeyaml.error.YAMLException:java.nio.charset.MalformedInputException: Input length = 1
报错描述是加载application.yml的时候失败了,异常是java.nio.charset.MalformedInputException。这个异常涉及编码格式。
这个
解决方案:
解决思路:
- 查看application.yml文件里是否有中文
- 查看application.yml的编码格式,是不是UTF-8
- 检查项目的编译格式是不是设置成了UTF-8
解决方法:
1.查看application.yml文件里是否有中文
首先查看了application.yml文件里是否有中文(一般编码问题,都涉及到中文):有中文
2.查看application.yml的编码格式,是不是UTF-8
再查看application.yml的编码格式,修改前是GBK。
其实是在idea里设置文件的编码格式。
idea设置文件编码格式:
File -> Settings -> Editor -> File Encodings
将
Properties Files (*.properties)
下的Default encoding for properties files
设置为UTF-8
,将Transparent native-to-ascii conversion
前的框勾选上。
注意:Transparent native-to-ascii conversion
也要勾选
如果想要单独修改一个文件的编码格式:
选中文件,File -> File Properties -> File Encodings
3.启动项目
如果项目成功启动了,那么无需进行后续操作
4.如果项目启动失败
将applicat.yml里的内容复制出来,删除application.yml文件,新建application.yml文件,将复制出来的内容复制进去。
或者将application.yml文件里的中文删除之后,重新手输中文。
上面这样做,是为了让文件里的中文格式变成UTF-8编码。
启动项目,看是否能正常启动。
5.检查项目的编译格式是不是设置成了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>