创建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>
相关推荐
喵个咪11 分钟前
GoWind CMS 拆解:给 NL2SQL 上四把锁——智能问数的安全边界
后端
喵个咪18 分钟前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
后端·go·cms
开开心心就好24 分钟前
课堂随机点名工具,绿色版免安装双击即用
java·服务器·前端·ffmpeg·音视频·perl·symfony
不像程序员的程序媛24 分钟前
springboot支持的web容器
前端·spring boot·后端
喵个咪25 分钟前
GoWind Admin 拆解:一个 Sender 接口接 39 个通知渠道
后端·架构·go
code2cat29 分钟前
Java高级篇之Socket:从建立连接到完整收发一条消息
java·开发语言
PD我是你的真爱粉37 分钟前
成熟Agent系统设计深度研究报告
java·大数据·人工智能
用户693717500138439 分钟前
当你向领导申请 AI 编程工具预算时,如果领导追问“能提效多少,有量化数据吗”,你该怎么回答?
android·后端·ios
喵个咪40 分钟前
GoWind CMS 拆解:社交分发引擎——10 平台适配器、状态闸门与自愈定时任务
后端·go·cms
lichenyang4531 小时前
技术穿刺怎么做?以企业知识库问答为例,验证风险、方案和投入
前端·后端