JAVA中BufferedReader設置編碼的必要性


實驗環境 Myeclipse 

默認編碼 UTF-8

先看兩種讀文件的方式:

方式一:

InputStreamReader fReader = new InputStreamReader(new FileInputStream(filePathString),"UTF-8");
BufferedReader reader = new BufferedReader(fReader);
String line;
while ((line = reader.readLine()) != null)
{
      //do something      
}
reader.close();

方式二:

BufferedReader reader = new BufferedReader(new FileReader(filePathString));
String line;
while ((line = reader.readLine()) != null)
{
      //do something
}
reader.close();

J2SE,兩種方式均能正常讀取文件。

以前我覺得代碼能短就短,所以一直用方式二。因為windows下的Myeclipse設置成UTF-8了,linux直接就是UTF-8;

但是但是但是!

直到有一天,我寫了一個web project。發現里面讀的是按照GBK讀的,導致都是亂碼。

 

原因如下:

windows默認編碼是 非UTF-8 ,而tomcat默認編碼是繼承系統的(server.xml里可以修改編碼,但是不知道為什么在我這里不好使),而web與后台通信是經過tomcat的,所以web工程里默認編碼是tomcat中的編碼。

 

結論:

如果涉及到web工程的文件讀寫,記得要設定文件讀寫的編碼格式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM