Java InputStreamReader 将Stream转String出现乱码. 确认了文件原来有中文,不是乱码.
InputStream in=new FileInputStream("D:\\temp\\user2.txt");
System.out.println(stream2String(in));
//stream2String方法的主要代码:
sb = new StringBuffer();
//bfReader = new BufferedReader(new InputStreamReader(in)); //会出乱码
bfReader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String line = bfReader.readLine();
后来设置了UTF-8原是出现乱码.
bfReader = new BufferedReader(new InputStreamReader(in, "UTF-8")); //网上几乎,青一色,都是说这种设置。
查了下原来文件的编码,是GB2312,恍然大悟。
原因:
要看文件是什么编码,用文件的编码读取,可以不是乱码. 比如,文件是GB2312,用 UTF-8读,还是会乱码的. 用GB2312就不会.