关于IDEA中“transparent native-to-ascii conversion“的解释

关于IDEA中"transparent native-to-ascii conversion"的解释

关于IDEA中“transparent native-to-ascii conversion“的解释

 

 

关于这个要不要勾选,先总结一句话:团队开发统一标准,个人开发保持习惯。
官方解释如下:
点击查看官网解释.

关于IDEA中“transparent native-to-ascii conversion“的解释

 

 

简单来讲,java默认采用iso8859-1编码读取,勾选这个后,实际存储变为ASCII码字符,这样是能正常解析的;
实际效果
test.name=\u54C8\u54C8
test.number=456
12
显示效果
test.name=哈哈
test.number=456
12
这其实只是编辑器的优化而已,并非本来面目,用sublime等文本编辑器打开就能看到实际效果。
再来说properties本身的编码:

如果用iso8859-1,文本编辑器打开后中文字符乱码,读取也是乱码(这是显然的,认不出来);
如果是utf-8编码,文本编辑器打开后中文字符显示正常,读取还是乱码,上面讲到了,底层读取的编码为iso8859-1。

撇开文本编码,存储成ASCII字符是正常的,java也会识别\uxxxx,这也是建议勾选的原因。
对比下eclipse(oxygen):创建properties(默认iso8859-1)后,编辑中文时也是自动转成了\uxxxx,用utf-8编码时,不会做自动转换。
具体方案:

勾选时:正常使用,IDE等提供预览支持;
未设置:保证读取编码正确。