BufferedReader读文件乱码问题

问题描述:

最近做项目,要抓取远程服务器上返回的json,使用BufferedReader读取获取到的内容,在MyEclipse中跑的时候没有问题,但是打成jar包跑的时候json内容中文部分就乱码了。

原因:

可能和MyEclipse本身设置的编码有关系,MyEclipse运行环境设置的是utf-8,导出成jar之后,BufferedReader采用的是操作系统默认的字符编码。

解决方案:

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file)));

改为

BufferedReader in = 
new BufferedReader(new InputStreamReader(new FileInputStream(file), "utf-8"));
时间: 2024-08-30 11:39:17

BufferedReader读文件乱码问题的相关文章

上传文件乱码,GBK转UTF-8

最近遇到这样一个问题,我上传文件没有转换字符集windows默认GBK,结果当我需要读文件显示时用UTF-8转当然会出现乱码,为了解决这个问题,我就将上传时文件一同也转成UTF-8了这样就不会乱码了,上传时转换字符集方法如下: String root = filePath;// 上传路径 File rootFile = new File(root); // 路径不存在先创建路径 if (!rootFile.exists()) { rootFile.mkdirs(); } // 获取后缀type

java创建文本、文件、读文件、写文件

1 package Head18; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileNotFoundException; 6 import java.io.FileReader; 7 import java.io.FileWriter; 8 import java.io.IOException; 9 10 public class Mkdirs_FileRW { 11 public st

从XML文件乱码问题,探寻其背后的原理(转)

由于网友反应本文图片不能显示,由于时间关系未能及时修正.请访问原文地址: 在日常开发工作中,我们经常会使用到XML,早已成为了一种标准.它的用途非常的广泛,但这些不是本文所重点讨论的. 相信大家在做开始时候经常碰到过“乱码”的问题,这是中国程序员非常头疼的问题.我一直很想深入研究关于“编码”的原理,无奈水平有限,那些枯燥的 理论(二进制,ASCII,Unicode,UTF-8,gb2312,ISO ...光这些就让我看的两眼发黑了),实在看不下去,也很难真正搞懂搞明白.望各位网友多指点.....

java 读文件 解析

[Java]读取文件方法大全 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {    /**     * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件.     */    public static void readFileByBytes(String fileName) {        File file = new File(fileName);        Input

(IO流)java中多种方式读文件,追加文件内容,对文件的各种操作

import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile; import java.io.R

java io 读取文件乱码及读取不出来的问题

import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class TestFileWriter { public static void main(String [] args) { try { FileReader out = new FileReader("d:/a.txt"); BufferedR

读文件工具类

package hiveTest; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile

linux和windows双系统互拷文件乱码问题

如果你需要在linux下面用到windows下的文件,拷贝上去后经常发现中文显示乱码..原因是Windows中默认的文件格式是 GBK(gb2312),而Linux一般都是UTF-8.比较繁琐的方法是在windows下用程序把内容转换为utf-8编码格式的,但是相当麻烦, 而且遇到一个文件转一回.下面介绍一下,在Linux中如何一劳永逸的解决这个问题,查看文件的编码及如何进行对文件进行编码转换. 查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:se

java(IO)读写文件乱码转换UTF-8问题

java(IO)读写文件乱码转换UTF-8问题 读取文件 String?Content?=?"";?//?文件很长的话建议使用StringBuffer try?{ FileInputStream fs=new FileInputStream("文件录取"); InputStreamReader?isr?=?new?InputStreamReader(fis,?"UTF-8"); BufferedReader?br?=?new?BufferedRe