創建一個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會占用更多的數據庫存儲空間。
