背景
你會發現 properties 文件里的中文可能會出現亂碼。
這個因為 properties 規范是使用 iso-8859-1 存儲的,不支持中文(也不支持西歐里法語、德語里奇怪的字母)
properties 的標準制定于很早,所以沒考慮這么多,properties 要存儲中文,要么可以改成用 UTF-8 編碼,要么使用 Unicode 轉義,要么用英文別用中文。
不用中文注釋還好,但是可能避免不了有些 key 值就是中文的,比如
mail.message=郵件信息的提示是中文怎么都避免不了
最佳實踐
- properties 的文件注釋盡量不用中文
- 使用 unicode轉義(最推薦)
- 使用 UTF-8 編碼
這個方式破壞了傳統,由于 properties 文件應用廣泛,很多讀取這類型的文件是沒對非默認編碼做處理的,到時出莫名其妙的錯會找不到北
在 idea 里的做法
最好的做法就是 idea 提供的障眼法,就是保持上面的配置不變(默認iso-8859-1),但是勾選 Transparent native-to-ascii conversion (默認沒勾選)
修改地方
New Projects Setup -> Settings for New Projects … -> Editor -> File Encodings (新開項目立即生效,推薦)
Settings -> Editor -> File Encodings (僅當前project生效)
該配置的作用:障眼法
即 properties 文件還是 ISO-8859-1 編碼,但是你打開查看的時候 idea 幫你把 \uXXXX 這種 Unicode 轉為你看得懂的中文,你編輯文件的時候把你輸入的中文轉為\uXXXX
你如果用其他編輯器打開配置文件,由于其他編輯器沒有轉換功能,你看到的文件內容就是最原始的 \uXXXX 這種。
這個是最好最穩妥的處理方式