BufferedReader类读取中文乱码

解决方法:

1
BufferedReader in = new BufferedReader(new FileReader(filename, Charset.forName("utf-8")));

在new FileReader类对象的时候,使用

1
FileReader(String fileName, Charset charset)

这个构造函数传一个参数指定一下字符集就OK了。原因是不指定字符集的话就会使用默认的字符集(一般是GBK),若与要读取文件的字符集不一致,则即便是字符流也会出现乱码。

字符集获取方法(Charset类是不可变类):

1
Charset.forName(String charsetName)

参考资料:

java里面字符集和Charset类
Java 解決BufferedReader读取UTF-8文件中文乱码


likeqc
ends