Eclipse中properties檔案編碼問題
開始摸索Java了,雖然還沒開始涉及Java專業問題,但已經讓我遇到頭疼的編碼問題了...
這次遇到的問題如下:
我在Eclipse中新建了properties檔案,這裡面的內容都是key=value形式,根據key讀取value內容或者按照key寫入value內容到properties檔案中。
本來都很順利,直到我配置了value內容為中文時出現了問題,讀出來的編碼是亂碼,OMG。
我本能的反應是加了如下處理:
String str = new String(src, "UTF-8");
然而只是變成了另一種亂碼。
這時,我先懷疑檔案本身的編碼,右擊"properties"屬性,發現Text file encoding是: Default(determined from content type: ISO-8859-1)
額,通過: Window -> Proferences -> Content Types -> Java Properties File,設定properties檔案預設編碼為UTF-8。更新後,確實為UTF-8格式的檔案編碼。
可是,測試後,仍為亂碼,於是CSDN上求解。看到這篇: http://blog.csdn.net/jubincn/article/details/8060796
根據第2個方式,對編碼進行轉換:
String str = new String(src.getBytes("ISO-8859-1"),"UTF-8");
哈哈,能獲得中文了!看來,在處理亂碼問題上,最簡單的做法就是制定規則,專案中所有檔案的儲存都採用統一格式(推薦的是UTF-8)。
如果還出現亂碼,那就是在處理的某個環節,忽略了編碼格式。比如讀/寫檔案時,沒有指定編碼為UTF-8,於是採用了該讀/寫方法的預設編碼,像我遇到的就是“ISO-8859-1”,這時可以採取的措施是:在讀/寫方法處指定編碼格式,或者確定該方法採用的編碼格式,然後轉換為UTF-8。