實驗環境 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工程的文件讀寫,記得要設定文件讀寫的編碼格式。