關於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

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: