zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Caused by: java.nio.charset.MalformedInputException: Input length = 1

2023-03-14 22:39:10 时间

Caused by: java.nio.charset.MalformedInputException: Input length = 1
    at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:125)
    at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:223)
    ... 31 common frames omitted

原因是: 在编写yml文件时, 这个文件可能是使用了GBK的编码方式, 在读取这个文件时, 如果文件有注解(试了一下,好像中文个数为奇数报错), 它会认为读到的字节为半个字节, 要求要为1

第一种:

可能是你的application.yml文件编码格式有问题,改为UTF-8,如下:

image

第二种:

可能就是你的application.yml文件是通过把其他类型的文件后缀名直接改为yml生成的,这时就需要你把application.yml中的内容全部复制,然后删除,再新建一个application.yml文件,将复制的内容拷贝进去再运行项目就不会报错了。

第三种:

干脆一点,要么修改编码方式, 要么去掉注解.

第四种:

pom中增加以下:

<properties>
        <java.version>1.8</java.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>