创建springboot项目时会出现注释乱码情况

解决方法

由于 IDE(如 IntelliJ IDEA)默认可能使用系统的 GBK 编码,而 Spring Boot 的配置文件通常要求使用 UTF-8​ 编码,当以错误编码读取或保存包含中文的文件时,就会显示为乱码

修改 IDEA 全局与项目编码(核心步骤)

这是解决乱码问题最关键的一步,需要确保整个开发环境的编码统一为 UTF-8。

  • 打开设置:File-> Settings(macOS 为 IntelliJ IDEA-> Preferences)。

  • 导航至:Editor-> File Encodings。

  • 将以下三项全部设置为 UTF-8:

    • Global Encoding(全局编码)

    • Project Encoding(项目编码)

    • Default encoding for properties files(属性文件默认编码)

  • 重要提示 :务必勾选 Transparent native-to-ascii conversion(透明 native-to-ascii 转换)下方的 Override encoding from IDE settings for properties files ​ 选项(该选项实际作用于所有类似 Properties 的键值型文本,包括 .yml)。

  • 点击 Apply和 OK保存。

2. 转换现有乱码文件

修改全局设置后,已经乱码的文件不会自动恢复,需要手动重新编码:

  • 在 IDEA 中打开乱码的 application.yml文件。

  • 在文件右上角或右下角状态栏查看当前文件的编码(可能显示为 GBK 或其他)。

  • 点击编码下拉框,选择 UTF-8。

  • 此时 IDEA 会提示是否转换(Convert)或重载(Reload),请选择 Convert(转换),将文件从旧编码转换为 UTF-8。

  • 转换后,原本的 ????应该会恢复成正常的中文注释。如果恢复后显示正常,请立即保存文件(Ctrl+S)。

3. 清理缓存并重启(若上述步骤无效)

如果修改设置并转换后依然显示乱码,可能是 IDEA 的旧缓存导致:

  • 关闭当前项目。

  • 进入项目根目录,找到并删除 .idea文件夹下的 encodings.xml文件(或者直接删除整个 .idea文件夹,但这会重置项目的所有 IDE 个性化设置)。

  • 重新打开 IDEA 并导入项目。

  • 再次检查编码设置,通常此时乱码问题会彻底解决。

4. 处理 BOM 头问题(进阶排查)

如果在 Windows 环境下使用过记事本等编辑器保存过该文件,可能会带有不可见的 BOM 头,导致 IDEA 解析异常:

  • 可以使用 Notepad++ ​ 等文本编辑器打开该 yml文件。

  • 在菜单栏选择 编码-> 转为 UTF-8 无 BOM 编码。

  • 保存后重新在 IDEA 中打开即可。

5. 补充:Maven/Gradle 构建配置(预防运行时乱码)

虽然上述步骤主要解决的是编辑时的显示乱码 ,但为了预防项目在打包或运行时读取配置文件出现乱码(如启动报错 MalformedInputException),建议在构建配置中显式声明编码:

在 pom.xml的 <properties>标签中添加:

复制代码
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

并在 maven-surefire-plugin或 spring-boot-maven-plugin中配置 JVM 参数:

复制代码
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
    </configuration>
</plugin>
相关推荐
喵个咪5 分钟前
GoWind Admin 拆解:打印模板设计器——从画布到服务端 PDF 的完整打印链路
前端·后端·go
文丑颜不良啊27 分钟前
LeetCode2441~2460题目解析
java·leetcode
喵个咪1 小时前
GoWind Admin 拆解:BI 大屏设计器——schema 即 JSON、resolver 注入与三张快照表的口径谱系
大数据·后端·go
喵个咪1 小时前
GoWind Admin 拆解:AI 能力层——工具循环、pgvector 知识库与机器凭证
人工智能·后端·agent
泡海椒1 小时前
jquick-pdf 柱状图(JBar)实战:Java 生成政务项目审批数量趋势 PDF
后端
阿屿1 小时前
从零手搓 AI 伴侣(二):好感度通胀危机,与它的「货币政策」
java·人工智能
灿飞1 小时前
Kotlin与Java虚拟机十一:类与属性:构造顺序、backing field 与显式 backing field
java·后端·kotlin
终码一生1 小时前
IntelliJ IDEA 2026.3 发布:智能体住进 IDE
后端
Gopher_HBo1 小时前
profbuf.go —— 单写单读无锁环形缓冲
后端
aiks_yuan1 小时前
40亿个QQ号 1G内存怎么去重:Java BitSet 装不下,long 数组位图 512MB 实测 46 秒(JDK 17)
java