关于 idea 里 properties 文件的中文乱码问题

背景

你会发现 properties 文件里的中文可能会出现乱码。

这个因为 properties 规范是使用 iso-8859-1 存储的,不支持中文(也不支持西欧里法语、德语里奇怪的字母)

properties 的标准制定于很早,所以没考虑这么多,properties 要存储中文,要么可以改成用 UTF-8 编码,要么使用 Unicode 转义,要么用英文别用中文。

不用中文注释还好,但是可能避免不了有些 key 值就是中文的,比如

mail.message=邮件信息的提示是中文怎么都避免不了

最佳实践

  • properties 的文件注释尽量不用中文
  • 使用 unicode转义(最推荐)
  • 使用 UTF-8 编码
    这个方式破坏了传统,由于 properties 文件应用广泛,很多读取这类型的文件是没对非默认编码做处理的,到时出莫名其妙的错会找不到北

在 idea 里的做法

最好的做法就是 idea 提供的障眼法,就是保持上面的配置不变(默认iso-8859-1),但是勾选 Transparent native-to-ascii conversion (默认没勾选)

修改地方

New Projects Setup -> Settings for New Projects ... -> Editor -> File Encodings (新开项目立即生效,推荐)

Settings -> Editor -> File Encodings (仅当前project生效)

该配置的作用:障眼法

即 properties 文件还是 ISO-8859-1 编码,但是你打开查看的时候 idea 帮你把 \uXXXX 这种 Unicode 转为你看得懂的中文,你编辑文件的时候把你输入的中文转为\uXXXX

你如果用其他编辑器打开配置文件,由于其他编辑器没有转换功能,你看到的文件内容就是最原始的 \uXXXX 这种。

这个是最好最稳妥的处理方式

相关推荐
你说我胖?1 小时前
Visual Studio编辑生成exe
ide·visual studio
Joy T3 小时前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
m0_587383006 小时前
广州 24 小时自助健身房解决方案技术实现与实战指南
java·spring·小程序·架构·需求分析
·云扬·6 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
代码不停7 小时前
自动化测试(java)
java·开发语言·selenium·自动化
鬼手点金9 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
paopaokaka_luck10 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
Wang's Blog10 小时前
Java 项目实战: 交友项目 - Dubbo 的内部结构与一次调用的完整链路
java·dubbo
Wang's Blog10 小时前
Java 项目实战: 交友项目 - Dubbo 入门引导
java·dubbo·交友
蜗牛互联网11 小时前
Python Agent工具调用的白名单、参数校验与审批门禁
java·服务器·前端·人工智能·后端·python