1. 程式人生 > >Java讀取檔案----中文亂碼問題

Java讀取檔案----中文亂碼問題

  在用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了。