Java读取文件,出现中文乱码,GB2312文件读取乱码

Posted tomcat and jerry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java读取文件,出现中文乱码,GB2312文件读取乱码相关的知识,希望对你有一定的参考价值。

读取编码为gb2312格式的文件,出现中文乱码

普通文件读取,通常使用FileReader

try (FileReader fileReader = new FileReader(sampleFile);
BufferedReader br = new BufferedReader(fileReader);) {
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);//中文乱码,文件格式是gb2312
}
}

  

 解决方案:

用InputStreamReader包装一层,并指定字符集


try(FileInputStream fis = new FileInputStream(sampleFile);
     InputStreamReader isr = new InputStreamReader(fis, "gb2312");
     BufferedReader br = new BufferedReader(isr);){
    String line = null;
    StringBuilder sb = new StringBuilder();
    while ((line = br.readLine()) != null) {
        sb.append(line);//不是乱码 https://www.cnblogs.com/tomcatandjerry
    }
}

 

以上是关于Java读取文件,出现中文乱码,GB2312文件读取乱码的主要内容,如果未能解决你的问题,请参考以下文章

Java:文件转换流(解决编码问题,防止出现乱码)

开发环境Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | 换行 | Runtime 执行 Cmd 命令 )

java在linux系统下文件夹出现中文乱码的问题

JAVA读写文件,如何避免中文乱码

使用InputStreamReader读取window系统下的txt文件总是乱码,utf-8,gb2312,gbk都试过了,还是乱码,求解

为啥MyEclipse的Console输出中文为乱码?