报错:org.yaml.snakeyaml.error.yamlexception: java.nio.charset.malformedinputexception: input length=1

当使用IDEA创建SpringBoot项目时遇到`org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1`错误,通常是由于配置文件的编码不正确导致。解决步骤包括检查并统一设置IDEA的文件编码为UTF-8,删除并重新创建application.yml文件,确保新文件以UTF-8编码存储,避免配置内容的编码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        用IDEA创建Spring Boot项目运行时,报了下面这个错误:org.yaml.snakeyaml.error.yamlexception: java.nio.charset.malformedinputexception: input length=1,该怎么办?

        看一遍报错信息,能大致感觉出来是yml配置文件出来错误,查了百度知道了这是编码的错误。我们可以这样解决:

        首先:把application.yml文件的内容复制下来,删除文件。然后点击:“file-settings-File Encodings”,如下图所示,然后把所有的编码都改成utf-8。
在这里插入图片描述
        最后,再重新创建一个application.yml文件,把刚刚复制的内容粘贴上去,这样就不会再报错了。

### Spring Cloud 中解决 `YAMLException` 和 `MalformedInputException` 当在 Spring Cloud 项目中遇到 `org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1` 错误时,这通常意味着配置文件存在字符编码问题或文件损坏。以下是详细的解决方案: #### 文件编码设置 确保所有的 `.yml` 或者 `.properties` 文件都使用 UTF-8 编码保存。IDEA 可以通过以下方式调整默认编码格式[^1]。 对于已经存在的文件,在编辑器内手动转换其编码至 UTF-8 并重新保存可以解决问题。如果是在 Windows 下开发,特别需要注意本地系统的默认 ANSI 编码可能带来的影响。 #### Nacos 配置中心特定处理 针对 Nacos 的情况,确认上传到 Nacos Server 上的配置项也是基于正确的字符集创建并传输给客户端应用实例。可以通过修改 Nacos 客户端连接参数来指定期望使用的字符集,例如添加 JVM 参数 `-Dfile.encoding=UTF-8` 来强制设定整个应用程序环境下的字符串表示形式遵循统一标准[^2]。 另外,检查 Nacos 控制台中的数据源配置部分是否有任何关于编码选项可选;如果有,请将其设为 UTF-8。 #### Maven 构建过程优化 构建过程中也可能引入不兼容的字节序列进入最终产物之中。因此建议审查 POM 文件内的资源过滤规则以及插件配置,防止不必要的替换操作破坏原始文本结构。特别是 `<build>` 节点下有关于如何对待非 ASCII 字符串的部分应该仔细校验[^3]。 ```xml <project> ... <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <!-- 明确指明编码 --> <encoding>UTF-8</encoding> </resource> </resources> ... </build> ... </project> ``` #### 运行时环境变量控制 最后但同样重要的是,在启动 Java 应用程序之前,可通过设置环境变量或者命令行参数的方式显式声明所希望的工作区编码模式。比如直接在执行 jar 包前加上如下指令: ```bash export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8" java -jar your-application.jar ``` 这样做能够有效避免由于操作系统层面的因素而导致的一系列潜在乱码现象发生。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦梦~~

你的鼓励是对我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值