关于Java中properties文件编码问题
Java properties文件编码问题
问题一:Transparent native-to-ascii conversion是什么
在学习Spring boot的时候,通过 @ConfigurationProperties 注解来获取配置信息时,中文乱码,老师说需要在设置中设置properties文件编码格式为UTF-8而且在IDEA中需要勾选 Transparent native-to-ascii conversion :
虽然确实解决了中文乱码的问题,但是很奇怪为什么要勾选这个Transparent native-to-ascii conversion,这个东西的作用是什么呢?
查找资料后发现就是在运行的时候将文件转换成Unicode编码。什么意思呢,也就是在文件展示是UTF-8编码,但是实际运行的时候把内容转换成了Unicode编码:
图一
图二
图一是IDEA中填写的内容,图二是通过Editplus打开文件时显示的内容,很明显可以看到IDEA自动转换了文件编码格式,这个就是Transparent native-to-ascii conversion的作用。
Java中属性文件(*.properties)转码为UTF-8
命令..\jdk1.5.0_06\bin\native2ascii.exe是JDK自带的转码工具
将中文转码为UTF8命令格式
native2ascii -encoding gb2312 before.properties after.properties
将转码后的字符转换回中文命令格式:
native2ascii -reverse after.properties before.properties
before.properties文件中是转码前的中文, after.properties就是转码后的utf-8格式。
实例:
before.properties的内容:
你好世界
after.properties的内容:
\u4f60\u597d\u4e16\u754c
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341