-
java读取txt文件内容 乱码_java读取txt文件乱码解决方法
2021-02-27 19:05:28txt文档编码格式都是写在文件头的,在程序中需要先解析文件的编码格式,获得编码格式后,在按此格式读取文件就不会产生乱码了。(推荐:java视频教程)java编码与txt编码对应:示例:package com.lfl.attachment;...java读取txt文件,如果编码格式不匹配,就会出现乱码现象。所以读取txt文件的时候需要设置读取编码。txt文档编码格式都是写在文件头的,在程序中需要先解析文件的编码格式,获得编码格式后,在按此格式读取文件就不会产生乱码了。(推荐:java视频教程)
java编码与txt编码对应:
示例:package com.lfl.attachment;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
public class TextMain {
public static void main(String[] args) throws Exception {
String filePath = "D:/article.txt";
// String filePath = "D:/article333.txt";
// String filePath = "D:/article111.txt";
String content = readTxt(filePath);
System.out.println(content);
}
/**
* 解析普通文本文件 流式文件 如txt
* @param path
* @return
*/
@SuppressWarnings("unused")
public static String readTxt(String path){
StringBuilder content = new StringBuilder("");
try {
String code = resolveCode(path);
File file = new File(path);
InputStream is = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(is, code);
BufferedReader br = new BufferedReader(isr);
// char[] buf = new char[1024];
// int i = br.read(buf);
// String s= new String(buf);
// System.out.println(s);
String str = "";
while (null != (str = br.readLine())) {
content.append(str);
}
br.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println("读取文件:" + path + "失败!");
}
return content.toString();
}
public static String resolveCode(String path) throws Exception {
// String filePath = "D:/article.txt"; //[-76, -85, -71] ANSI
// String filePath = "D:/article111.txt"; //[-2, -1, 79] unicode big endian
// String filePath = "D:/article222.txt"; //[-1, -2, 32] unicode
// String filePath = "D:/article333.txt"; //[-17, -69, -65] UTF-8
InputStream inputStream = new FileInputStream(path);
byte[] head = new byte[3];
inputStream.read(head);
String code = "gb2312"; //或GBK
if (head[0] == -1 && head[1] == -2 )
code = "UTF-16";
else if (head[0] == -2 && head[1] == -1 )
code = "Unicode";
else if(head[0]==-17 && head[1]==-69 && head[2] ==-65)
code = "UTF-8";
inputStream.close();
System.out.println(code);
return code;
}
}
注意:在resolveTxt方法中不能通过readTxt方法传InputStream流 ,这样会使两个方法持有同一个流引用,而在resolveTxt方法中已读过流中的三个字节,流中的pos此时已经是3了,而不是流的起始位置,再在readTxt中读取时就会出现IOException:Read Error。
更多java知识请关注java基础教程栏目。
-
java获取文件名称乱码
2020-09-30 09:33:19使用工具去连接远程服务器的时候,ls查看文件列表,显示很多问号,常用连接工具换了常用的工具切换了几种常用编码去连接的时候查看都是乱码,但是使用SSH Secure...请问各位大佬们这种情况下如何读取到正确的文件内容? -
java json解析乱码_json解析中文乱码
2021-03-15 16:02:50访问其他的服务器的方法之后返回的是默认编码格式(那边没指定一个编码发送内容)所以解析时候在文件流中解析就可以了。Strint name = "testone";String password = "passwordone";URL u = new URL(...json解析中文的时候乱码的话是报错的。
访问其他的服务器的方法之后返回的是默认编码格式(那边没指定一个编码发送内容)
所以解析时候在文件流中解析就可以了。
Strint name = "testone";
String password = "passwordone";
URL u = new URL("http://test.com.cn?name="+name+"&password="+password+"");
HttpURLConnection uConnection = (HttpURLConnection) u.openConnection();
uConnection.connect();
InputStream is = uConnection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
StringBuilder sb = new StringBuilder();//Stringbuffer的效率比它的低,不解释。
while (br.read() != -1) {
sb.append(br.readLine());
}
br.close();
String content = "{"+sb.toString();//通过流获取之后总是把第一个括号给省略掉,自己加一个。
JSONObject j = JSONObject.fromObject(content);
String result = (String)j.get("result");
String username = (String)j.get("name");
-
java如何解析application/octet-stream二进制文件流中的乱码内容
2020-07-15 14:33:30 -
java opencsv 乱码_openCSV.jar解析CSV文件时,中文乱码问题解决
2021-03-13 19:09:51opencsv-2.3.jar解决有中文内容的CSV文件时,代码读取时乱码。解决方案如下:重构opencsv-2.3.jar包里的CSVReader文件。方法:public CSVReader(Reader paramReader, char paramChar1, char paramChar2,char ...opencsv-2.3.jar解决有中文内容的CSV文件时,代码读取时乱码。
解决方案如下:重构opencsv-2.3.jar包里的CSVReader文件。
方法:
public CSVReader(Reader paramReader, char paramChar1, char paramChar2,
char paramChar3, int paramInt, boolean paramBoolean1,
boolean paramBoolean2) throws UnsupportedEncodingException,
FileNotFoundException {
//br,读取文件流,在此处要给文件编码以解决中文乱码,用以下代码段替代下方代码。
//this.br = new BufferedReader(new InputStreamReader(new FileInputStream(csvFileName), "GBK"));
//csvFileName是文件的全路径
this.br = new BufferedReader(paramReader);
this.parser = new CSVParser(paramChar1, paramChar2, paramChar3,
paramBoolean1, paramBoolean2);
this.skipLines = paramInt;
}
手机扫一扫,关注程序员技能成长
-
Java中文乱码——6、快门文件上传乱码
2014-03-26 10:40:03•现象 –将用户上传的文件,解析后插入数据库,出现乱码 ...–先判断文件内容编码org.jtester.utility.cpdetector.CodepageDetectorProxy –若不是UTF-8,则进行转码 com.googlecode.juniversalcha快门支持文件上传功能,能把用户上传的文件上传到TFS、Oracle、Hive等地方。在开发过程中发现,上传到TFS的文件、插入ORACLE、HIVE的数据有乱码。最终发现原因如下:1、文件上传的是字节流,其编码未知2、无论以各种编码去理解该字节流都是不对的那么,解决方案也比较简单1、获取到字节流时先判断编码2、将字节流统一转换成一种编码,比如:UTF-8其中编码格式判断采用如下方式:
需要引入如下jar包:public static String guessEncoding(byte[] bytes) { String DEFAULT_ENCODING = "UTF-8"; org.mozilla.universalchardet.UniversalDetector detector = new org.mozilla.universalchardet.UniversalDetector(null); detector.handleData(bytes, 0, bytes.length); detector.dataEnd(); String encoding = detector.getDetectedCharset(); detector.reset(); if (encoding == null) { encoding = DEFAULT_ENCODING; } return encoding; }
参考:http://blog.csdn.net/ajaxhu/article/details/12446917<dependency> <groupId>com.googlecode.juniversalchardet</groupId> <artifactId>juniversalchardet</artifactId> <version>1.0.3</version> </dependency>
-
jsp页面 jsp与servlet url传递参数 Java web下载文件文件名乱码
2017-10-16 12:44:281.jsp页面内容显示乱码 这种乱码原因很简单,一般的工具或解码程序对中文字符解析时采用默认的解码方式: "text/html; charset=ISO-8859-1"%> 我们只需修改其编码方式即可,如下: "text/html; charset=UTF... -
读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码
2017-03-15 14:49:00使用ant.jar进行文件zip压缩 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ... -
读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(支付宝对账单为例)
2016-09-12 21:17:24读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(还是以支付宝对账单为例) zipUtil下载地址 package com; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream... -
jmeter java csv_解决jmeter导入csv文件乱码的问题
2021-03-13 03:29:48jmeter解析csv文件时,需要设置编码http发送请求时,需要设置内容编码如果是使用java生成的jmx楼主使用的是utf-8/** JMETER_ENCODING 这个是楼主设置的常量,值是UTF-8 */// 1. 写入csv文件时,指定编码,private ... -
带logo的二维码解析出来是乱码
2016-08-12 08:35:34我操网上找了一个生成二维码的,可是一直找不到原因为何第二个带logo的二维码解析出来是乱码呀 ``` package com.qrcode; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.... -
Java中的中文乱码产生原理
2011-03-18 17:55:00在阅读了许多关于Java... Abstract:本文深入分析了Java程序设计中Java编译器对java源文件和JVM对class类文件的编码/解码过程,通过此过程 的解析透视出了Java编程中中文问题产生的根本原因,最后给出了建 -
java 解析xml前面多一个字符
2018-11-06 08:00:42test.txt文件内容: A中 2国 3 4 5 6 test.txt文件采用写字板保存为UTF-8格式 保存并关闭后使用写字板再次打开该UTF-8文档,中文、字母正常显示 测试代码: import java.io.BufferedReader; import java.io.... -
okhttp返回内容乱码_android retrofit 请求返回String数据中文乱码解决方案
2020-12-29 08:12:28问题来源focus 应用中核心的部分是,网络请求订阅的xml文件内容,然后解析xml文件存储到本地数据库。这里网络请求我使用的是retrofit,返回的类型是String,所以使用的是ScalarsConverterFactory的解析器。*就会出现... -
Cpdetector识别网页编码 解决Java爬虫乱码问题
2017-04-10 14:21:23Cpdetector识别网页编码 解决Java爬虫乱码问题概述在使用Java的第三方类库HttpClient或者OkHttp爬取网页文件时,由于网页编码的不同,导致有的页面中文存在乱码问题。为了能够正确解析网页内容,必须对网页的编码... -
cocos2dx java 乱码_解决Cocos2d-x中文乱码
2021-03-07 17:49:53读取外部xml或者Json文件显示中文1.xml方法使用xml解析中文十分的简单,首先我们需要准备一个xml文件。如下所示:string1欢迎学习cocos2dxstring2使用XML显示中文string3key与string标签中的内容是对应的在xml文件中... -
烦人的Java中文乱码问题
2013-12-30 19:15:29实习中处理上传网页的东西。无奈网页的编码文件有UTF-8 和 GBK两种格式,如果不转码中文...String 中只有全世界通用的Unicode而String str = new String(str.getBytes("..."),"...")是将str中的内容解析成相应的byte[] -
java Properties 中文乱码的正确解决方案(不要再用native2ascii.exe了)
2015-03-27 14:23:15从Spring框架流行后,几乎根本不用自己写解析配置文件的代码了, ...碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象, Java代码 Pr -
java读取本地json文件,读取远程服务json文件
2021-02-26 10:57:32需求:需要读取远程服务文件,并且把文件内容的json数据解析到程序中使用 注意:解决中文乱码 (文件保存成utf-8编码即可) 代码: package com.example.demo.tan; import com.alibaba.fastjson.JSON; import ... -
C文件怎么改写成java文件?
2019-08-02 19:56:12最近遇到一个棘手的问题,老板给了几个.unl格式的文件,文本打开全是乱码,说是要求用java读取解析,给了个C写的解析过程,可我不懂C语言。虽然有格式文档但是怎么解都解不出正确的内容来,哪位大神有能将C语言翻译... -
java获取中文不正确_关于java.util.Properties读取中文乱码的正确解决方案(不要再用native2ascii.exe了)....
2021-03-08 18:51:41从Spring框架流行后,几乎根本不用自己写解析配置文件的代码了,但近日一个基础项目(实在是太基础,不能用硕大繁琐的Spring),碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象... -
文件传输中选择怎样的文件编码格式(.doc/.zip/.rar) Java
2016-11-24 01:48:30其中包括了.doc、.zip以及.rar格式的文件,在文件的的发送和接收过程中,(1).doc格式文件:接收端收到并解析出来的文件不能保持原有的文件内容格式,例如表格,特殊字符等在解析时出现乱码(2).zip以及.rar格式的... -
用java中的map解析微信MicroMsg里的CompatibleInfo.cfg和systemInfo.cfg
2014-03-26 15:31:41最近要研究微信,其聊天记录保存在data/data/com.tentcent.mm里的MicroMsg文件夹下,毫无疑问里面关键信息都被加密了。 该文件夹下CompatibleInfo.cfg是...这里贴上解析该文件的Java代码: import java.io.FileIn -
java rss xml_获取RSS源xml文件的四种方法
2021-02-27 22:08:49最近在看RSS相关的内容,想用Java实现一个RSS订阅的功能,代码还是比较简单的,只需要度渠道xml后使用其他格式解析即可。但注意需指定编码格式,否则会乱码。package com.cyz;import java.io.BufferedInputStream;... -
关于java.util.Properties读取中文乱码的正确解决方案(不要再用native2ascii.exe了)...
2016-04-01 16:26:00从Spring框架流行后,几乎根本不用自己写解析配置...碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象, Java代码 Propertiesprop=newProperties(); prop.loa... -
工程轻量小巧 (仅依赖 fastjson,Jar 仅 280KB,Java 文件仅 59 个共 13719 行代码,例如 APIJSONORM 4.3.1) 多年持续迭代 (自 2016 年开源至今已连续维护 4 年,累计 2000+ Commits、70+ Releases,不断更新迭代中...
-
myEclipse乱码解决办法
2014-04-09 19:59:43如果有人给了你一个编写好的java文件,但是他是用GBK编码保存的,那么你现在打开的时候,会显示乱码。在这个文件上右键-->Properties-->Resource在右侧Text file encoding ->Other ->GBK,就可以正常显示里面的内容... -
java字节码执行原理_《Java 底层原理》Java 字节码详解
2021-03-08 00:09:49Java字节码的原理进制class文件就是字节码文件,直接是打不开,打开也是乱码,需要解析才能看明白里面的内容。现在存在很多语言都是允许在Jvm上,比如Kotlin。 他们其实就是通过编译也编译成Jvm认识的.class 文件即....