特效藥——解決Java中的I/O流中文亂碼的兩種方法

對於文本格式,在寫和讀的過程中我們經常會碰到結果亂碼的現象。
原因是因爲在對文本的讀和寫的過程中的 編碼是不同的,編碼不同肯定會導致亂碼出現。
那麼針對這種亂碼的現象,給出兩種解決方法

亂碼解決方法1:

先說最簡單的解決方法,直接在編譯器中修改編譯格式即可
下面以eclipse爲例:
在這裏插入圖片描述
在編輯中選擇設置編碼
在這裏插入圖片描述
編碼設置爲UTF-8就可以正常的將中文輸出。
按照常理說,不論是什麼編譯軟件,都是可以進行編碼的設置的。

亂碼解決方法2:

介紹了一個簡單的,改一下編碼就能解決,當然還有其他的方法,那麼現在介紹如何使用代碼進行處理亂碼的現象。

這種用代碼解決的方案就是我前面講到的字符轉換流,用來確保編碼格式的一致性。

需要指定輸入、輸出的編碼格式相同:

指定輸出流的編碼格式——UTF-8(或者使用GBK)
       OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("xx.txt"),"UTF-8");          
       osw.write("童年所謂的長大不再被期盼");          
       osw.close();  

指定輸入流的編碼格式——UTF-8(或者使用GBK)     
       InputStreamReader isw=new InputStreamReader(new FileInputStream("Xxxx.txt"),"UTF-8");  
       isw.close();  

注意,編譯格式一定是相同的,纔不會出現亂碼的現象

如果方法2沒有特別清楚的理解,可以看一下字符轉換流的詳細介紹:
https://blog.csdn.net/qq_45696288/article/details/106811420

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章