InputStreamReader解決讀取文本中文亂碼


創建一個txt文本,文本采用的編碼格式是ANSI,首先FileInputStream從a.txt文件讀取,並且一個字節一個字節傳給InputStreamReader,當返回三個字節時(UTF-8是三個字節為1個漢字),FileInputStream就去UTF-8表中找所對應的中文漢字。結果顯而易見,所以出現亂碼.所以要將“UTF-8"設置為"GBK”,或者將txt文本的編碼格式改為UTF-8

 1  /**
 2      * http://127.0.0.1:8080/zifuliu/du
 3      * 字符流,輸入流,讀
 4      * 高效流
 5      * @return
 6      * @throws IOException
 7      */
 8     @RequestMapping("/du")
 9     public String du()throws IOException {
10         //使用默認編碼
11         InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("D:/aaa.txt"),"utf-8");
12         BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
13         String str;
14         StringBuilder stringBuilder = new StringBuilder();
15         while ((str=bufferedReader.readLine())!=null){
16             System.out.println("====>字符流:"+str);
17             stringBuilder.append(str);
18         }
19         bufferedReader.close();
20         return stringBuilder.toString();
21     }

 

 

gbk和utf-8區別?

區別:GBK主要用於中文編碼,包含全部中文字符,utf8包含全世界所有國家需要用到的字符;utf8比較靈活,長度在1-6個字節,GBK的長度為2個字節,和GBK相比,utf8會占用更多的數據庫存儲空間。

 


免責聲明!

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



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