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

在使用spring的@PropertySource时,发现引入的配置出现了乱码,看到有人抠源码改写,想说一下,可以通过配置

@PropertySource(value = "classpath:/config.properties", encoding = "utf-8")

来解决,不过对于application.properties来说不生效,应该是已经在环境中了,没有再加载,其实也不用再重复加载。

另一种方案是通过勾选transparent native-to-ascii conversion配置来解决。
encoding

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

简单来讲,java默认采用iso8859-1编码读取,勾选这个后,实际存储变为ASCII码字符,这样是能正常解析的;

实际效果

test.name=\u54C8\u54C8
test.number=456

显示效果

test.name=哈哈
test.number=456

这其实只是编辑器的优化而已,并非本来面目,用sublime等文本编辑器打开就能看到实际效果。

再来说properties本身的编码:

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

撇开文本编码,存储成ASCII字符是正常的,java也会识别\uxxxx,这也是建议勾选的原因。

对比下eclipse(oxygen):创建properties(默认iso8859-1)后,编辑中文时也是自动转成了\uxxxx,用utf-8编码时,不会做自动转换。

具体方案:

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




知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值