properties配置文件编码乱码问题

在IDEA中的Preferences-Editor-File Encodings中有如下勾选框Transparent native-to-ascii conversion


properties配置文件编码乱码问题
image.png

这个选项实际上借助的是一个JDK自带工具:native2ascii。
native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。
native2ascii命令详解

假如不勾选这个选项:
配置文件为我们配置的系统默认UTF-8编码,而在Spring的xml文件中没有显式地为配置文件配置文件编码时,JAVA程序默认是以ASCII码(我猜的)读取配置文件的,ASCII无法表示中文字符。
假如UTF-8配置文件如果包含中文字符:name=晚歌,由于ASCII无法表示中文,晚歌就会显示为乱码。

勾选这个选项以后:
配置文件中的中文事实上在保存的时候会被转化为UNICODE编码(在IDEA中实际上是已经帮我们将UNICODE编码转换为中文,因此我们在IDEA上看到的是中文),因为ASCII码是能够表示任何UNICODE编码的,但源文件中的ASCII码不会做任何转换。
因为UNICODE编码能够表示任何的字符集,因此编码转换的时候就不会出现乱码问题。

;