關於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。
推薦閱讀:
- Spring Boot兩種全局配置和兩種註解的操作方法
- SpringBoot配置加載,各配置文件優先級對比方式
- .net6環境下使用RestSharp請求GBK編碼網頁亂碼的解決方案
- Python之string編碼問題
- java springboot的概述、特點與構建介紹