java字節流對漢字輸出爲亂碼的問題
package IoOut; import java.io.*; public class App14_1 { public static void main(String args[]) throws IOException //read()方法拋出IOException異常,在此交給JVM處理 { FileInputStream fr =new FileInputStream("c:\\aaa.txt"); //ok,但不能正 確讀取出漢字 int ch; int count=0; ch=fr.read(); //read()方法返回的是一個整型數字 while(ch!=-1) { System.out.print((char)ch); ch=fr.read(); count++; } fr.close(); System.out.println("\n共讀取了:"+count+"個字符"); } } 在aaa.txt中有漢字,但輸出爲亂碼,字符輸出正常,爲什麼?
答
首先確認你的字符編碼,gbk編碼中文是2個字節,utf編碼是3個字節代表一個字符 read讀到的是一個節,一箇中文,當然就讀半個字節了,不完全當然是亂碼了