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
    }
}

原文地址:https://www.cnblogs.com/tomcatandjerry/p/10119699.html

时间: 2024-08-23 16:20:28

Java读取文件,出现中文乱码,GB2312文件读取乱码的相关文章

Hadoop0.20.2中MapReduce读取gb2312文件出现乱码问题

单位用的是Linux系统的字符编码是gb2312,所以生成的文件都是按照默认编码生成的.给我的文件也都是gb2312的,在hadoop中运行mapreduce出现乱码,在网上查资料说是因为hadoop的文件系统默认用的是utf-8,那么只有两条路可以选,要么改文件的编码格式,要么改在Mapreduce程序中想办法转一下.很显然改文件的编码格式是不现实的,因为客户那边用C++生成的文件千千万万,而且原来的老程序还在不断的生成,要他们改程序涉及到的工作量太大了.所以这能我这边想办法了. 因为Mapr

java解压多目录Zip文件(解决中文乱码问题)--转载

原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import org.apache.tools.zi

Redis 中文入库成功,读取数据写入文件乱码问题

最近需要用到redis ,但是在编码这个问题上,纠结了很久. 需求 : 每天一个进程将中文文件入库到redis中(不定时更新) ,另外几个进程读取redis中的信息 ,并处理数据结果. 使用的redis模块 : redis-py 问题 : 入库正常,读取数据成功,以GBK编码写入文件出现异常. 通过以下参数连接 redis : client  = redis.StrictRedis(host='localhost', port=6379, db=0, password="***") 从

java压缩解压zip文件,中文乱码还需要ant.jar包

va] view plaincopyprint? package cn.cn; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; i

springBoot使用@Value标签读取*.properties文件的中文乱码问题

上次我碰到获取properties文件中的中文出现乱码问题. 查了下资料,原来properties默认的字符编码格式为asci码,所以我们要对字符编码进行转换成UTF-8格式 原先代码:@PropertySource("classpath:fu.properties") 改后代码:@PropertySource(value="classpath:fu.properties",encoding="utf-8") 然后就不会出现@Value标签读取*

spring使用@Value标签读取.properties文件的中文乱码问题的解决

最近测试某个老系统的时候,启动的时候发@Value注入的中文是乱码,文件使用GBK/UTF-8的时候均会出现乱码问题,但是spring配置文件里面注入的占位符并没有这个问题,bean文件设置了file-encoding="UTF-8"亦如此. 经查,可通过如下方式解决: @Component @PropertySource(value = "classpath:conf/spider.properties",encoding = "utf-8")

Java读写文件,中文乱码解决

读文件:使用new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); StringBuffer strBuf = new StringBuffer(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")

Python | 多种编码文件(中文)乱码问题解决

问题线索 1 可以知道的是,文本文件的默认编码并不是utf8. 我们打开一个文本文件,并点击另存为 2 我们在新窗口的编码一栏看到默认编码是ANSI.先不管这个编码是什么编码,但是通过下拉列表我们知道,这种编码不是utf8. END 编码测试 1 对于Python里面的中文显示,我们常常使用utf8和gbk的编码.对于这两种编码笔者就不介绍了,总之都是专门可以处理中文的编码方式啦. 2 我们首先对文本文件测试了gbk解码.我们发现,此编码下文本文件内容可以正常显示,但是使用utf8解码,程序出错

点滴记录——Ubuntu 14.04中gedit打开文件出现中文乱码问题

在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时会出现乱码的情况,这是由于gedit对字符编码匹配不正确导致的,解决方法如下: 在终端中输入如下命令,然后重新打开gedit即可: gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'GB2312', 'GBK', 'UTF-8', 'BIG5', 'CURRENT', 'UTF-16']"