创建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>
相关推荐
xcl09251 小时前
北京24小时自助健身房系统软件开发实战:从架构到部署全流程指南
java·spring boot·架构
一 乐3 小时前
动漫书销售商城|基于springboot + vue动漫书销售商城(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕业设计
卓怡学长3 小时前
w214基于jsp知道特产网
java·intellij-idea
步行cgn3 小时前
Spring 注解使用详解
java·spring
一条小小yu3 小时前
Spring IoC的理解
java·后端·spring
落魄实习生4 小时前
Agent Scope Java 2.x 系列【7】工具使用
java·开发语言·ai
旺仔学长 哈哈4 小时前
springboot钓鱼爱好者交流平台APP设计与实现
java·spring boot·mysql·充电桩管理系统
茉莉玫瑰花茶4 小时前
GO [ 方法 ]
开发语言·后端·golang
Wx-bishekaifayuan4 小时前
django个性化旅游路线推荐平台49005-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
Eric_见嘉5 小时前
在职前端 Skill 和 MCP 分享
前端·后端·agent