解決BufferedReader读取中文乱码问题

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就不会.

上一篇:在c中生成SHA256


下一篇:转换流:InputStreamReader、OutputStreamWriter