Java讀取檔案----中文亂碼問題
阿新 • • 發佈:2019-01-30
在用Java讀寫檔案時,發現讀取的檔案在用控制檯輸出之後中文部分出現了亂碼的問題。
先不吐槽為毛中文這麼多怪事。
對於不同的檔案,它們的預設編碼格式可能是不同的,有的是gbk,有的是utf-8,又或者是ISO-8859-1之類的。
總而言之,一遇到中文就會出現各種奇怪的亂碼行為,尤其是IDE還會有個預設的編碼格式出來搗亂,比如Eclipse,它的預設編碼就是GBK,但實際上,貌似utf-8用的更普遍一些。
那麼,關於讀寫檔案時出現的中文亂碼問題應該如何解決呢?請看下面的程式碼。
File file = new File("C:\User.ftl"); FileReader fr; try { fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String nextline=""; while( (nextline=br.readLine()) !=null) { nextline = new String(nextline.getBytes("GBK"),"UTF-8");//將讀取出來的GBK格式的程式碼轉換成UTF-8 //因為Eclipse的預設格式是GBK,而我們讀到的ftl檔案的格式是UTF-8 //當然,實際上要根據實際的情況來進行修正。 System.out.println(nextline); } }
也就是說,強制轉換一下讀取出來的字串格式就行了。至於究竟要從哪個格式轉換成哪個,就要看檔案和IDE了。