IDEA中关于.properties配置文件编码的小坑

  • IDEA中properties的配置文件这里默认是没有打钩的,也就是生效跟随系统编码。如果项目中的配置文件编辑中文时,这里是处于没有打钩的状态,那么直接使用记事本打开是正常的。
  • Transparent native-to-ascii conversion。意思应该是把本地语言转换成ascii码保存。编写属性文件时,可能包含了本地语言(中文),如果采用特殊的编码格式(例如GBK),在其他机器上(例如美国、日本的机器)打开这个文件可能就有乱码问题,干脆直接保存成ascii码。实际上是这些文本的unicode码对应的ascii码,例如有一个汉字的unicode码是8BEF,那么就保存\u8BEF对应的ascii码。因为保存的是\u8BEF的ascii码,所以使用记事本直接打开就看到\u8BEF的文本。下一个次用另外机器的IDEA打开时也勾选这个选项,IDEA先把文件读取成Unicode码文本,再把Unicode码文本翻译成实际的文本,这样就防止了不同语言、不同编码格式带来的问题。
    IDEA中关于.properties配置文件编码的小坑
  • 而如果编辑文本文件时,这里是处于打钩的状态,那么就会忽略掉所选择的properites文件的编码格式,直接保存为ascii码,直接使用记事本打开是如下状态。如果IDEA在这里没有打钩,打开一个在编辑时生效了Tansparent native-to-ascii conversion的资源文件,也是这种状态。

IDEA中关于.properties配置文件编码的小坑

  • 因此,如果发现IDEA中的资源文件打开是编码的形式,在IDEA中要生效Tansparent native-to-ascii conversion并重启IDEA,再次打开资源文件就会正常显示中文。

总结

在使用资源配置文件时,要即使检查资源文件的编码设置状态。