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

image.png
這個(gè)選項(xiàng)實(shí)際上借助的是一個(gè)JDK自帶工具:native2ascii。
native2ascii是sun java sdk提供的一個(gè)工具。用來將別的文本類文件(比如*.txt,*.ini,*.properties,*.java等等)編碼轉(zhuǎn)為Unicode編碼。
native2ascii命令詳解
假如不勾選這個(gè)選項(xiàng):
配置文件為我們配置的系統(tǒng)默認(rèn)UTF-8編碼,而在Spring的xml文件中沒有顯式地為配置文件配置文件編碼時(shí),JAVA程序默認(rèn)是以ASCII碼(我猜的)讀取配置文件的,ASCII無法表示中文字符。
假如UTF-8配置文件如果包含中文字符:name=晚歌,由于ASCII無法表示中文,晚歌就會(huì)顯示為亂碼。
勾選這個(gè)選項(xiàng)以后:
配置文件中的中文事實(shí)上在保存的時(shí)候會(huì)被轉(zhuǎn)化為UNICODE編碼(在IDEA中實(shí)際上是已經(jīng)幫我們將UNICODE編碼轉(zhuǎn)換為中文,因此我們在IDEA上看到的是中文),因?yàn)锳SCII碼是能夠表示任何UNICODE編碼的,但源文件中的ASCII碼不會(huì)做任何轉(zhuǎn)換。
因?yàn)閁NICODE編碼能夠表示任何的字符集,因此編碼轉(zhuǎn)換的時(shí)候就不會(huì)出現(xiàn)亂碼問題。