YAMLException异常产生原因及解决方案

本文讲述了作者在使用Swagger插件时遇到YAMLException异常,发现是由于YML文件编码问题导致。通过设置项目默认编码为UTF-8,包括全局、项目编码和相关配置,解决了编码混乱引发的异常,确保程序正常运行。
摘要由CSDN通过智能技术生成

YAMLException异常产生原因及解决方案

01 异常发生场景

  • 当我在使用一个插件优化swagger文档时
  • 突然yml的中文全变成了乱码,在idea里的文件也从绿色图标变成了红色,我看到yml文件上方有一个设置文件编码的选项,我就随意的设置为了GBK,图标变回绿色图标,注释中的乱码也变回中文,我也没太在意,毕竟代码跑着跑着就是会出莫名其妙的问题
  • 以下是yml文件的代码
server:
  port: 8080
  servlet:
    context-path: /web

# 配置数据源
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/text012?userSSL=false;serverTimezone=Asia/Shanghai
    username: root
    password: 1234
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

# 配置mybatis
mybatis:
  # mapper配置文件
  mapper-locations: classpath:mapper/*.xml
  # resultType别名,没有这个配置resultType包名要写全,配置后只要写类名
  type-aliases-package: com.example.demo.com.mashang.dao
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
  • 但是当我启动时,它报了一个YAMLException异常,程序直接终止了

02 异常的产生原因

  • 我第一反应就是swagger的优化插件knife4j有问题,于是把它删掉再测试了一遍,很可惜还是寄了,代码还是报YAMLException异常,程序依旧终止

  • 所以问题还是出在yml文件的编码问题

  • 这个YAMLException异常算是个比较奇怪的问题了,明明没做什么,yml的编码就莫名其妙改了

03 解决方式

  • 设置项目的默认编码,步骤如下

1.在左上角的file中选择setting

2.在搜索框中搜索File encodings

4.把Global encoding和Project encoding设置为UTF-8

  • 全局编码和项目编码一般使用的都是utf-8

5.default encoding for properties files设置为UTF-8

6.transparent native-to-ascii conversion打钩

7.在create utf-8 file选项中选with no bom

  • utf-8编码默认是不需要bom的
  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宣布无人罪

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值