精华内容
下载资源
问答
  • txt文档编码格式都是写在文件头的,在程序中需要先解析文件的编码格式,获得编码格式后,在按此格式读取文件就不会产生乱码了。(推荐:java视频教程)java编码与txt编码对应:示例:package com.lfl.attachment;...

    c35cd08172b41b5e75182c322ca4a8c9.png

    java读取txt文件,如果编码格式不匹配,就会出现乱码现象。所以读取txt文件的时候需要设置读取编码。txt文档编码格式都是写在文件头的,在程序中需要先解析文件的编码格式,获得编码格式后,在按此格式读取文件就不会产生乱码了。(推荐:java视频教程)

    java编码与txt编码对应:

    e1b16ce12de181588592e1809d5fa8f0.png

    示例: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...请问各位大佬们这种情况下如何读取到正确的文件内容
  • 访问其他的服务器的方法之后返回的是默认编码格式(那边没指定一个编码发送内容)所以解析时候在文件流中解析就可以了。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");

    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/202007/15/1594794764_771911.png)
  • opencsv-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;

    }

    手机扫一扫,关注程序员技能成长

    展开全文
  • •现象 –将用户上传的文件,解析后插入数据库,出现乱码 ...–先判断文件内容编码org.jtester.utility.cpdetector.CodepageDetectorProxy –若不是UTF-8,则进行转码 com.googlecode.juniversalcha
    快门支持文件上传功能,能把用户上传的文件上传到TFS、Oracle、Hive等地方。在开发过程中发现,上传到TFS的文件、插入ORACLE、HIVE的数据有乱码。
    最终发现原因如下:
    1、文件上传的是字节流,其编码未知
    2、无论以各种编码去理解该字节流都是不对的
    那么,解决方案也比较简单
    1、获取到字节流时先判断编码
    2、将字节流统一转换成一种编码,比如:UTF-8
    其中编码格式判断采用如下方式:
    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;  
    }  
    需要引入如下jar包:
    <dependency>
      <groupId>com.googlecode.juniversalchardet</groupId>
      <artifactId>juniversalchardet</artifactId>
      <version>1.0.3</version>
    </dependency>
    参考:http://blog.csdn.net/ajaxhu/article/details/12446917
    展开全文
  • 1.jsp页面内容显示乱码 这种乱码原因很简单,一般的工具或解码程序对中文字符解析时采用默认的解码方式: "text/html; charset=ISO-8859-1"%> 我们只需修改其编码方式即可,如下: "text/html; charset=UTF...
  • 使用ant.jar进行文件zip压缩 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...
  • 读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(还是以支付宝对账单为例) zipUtil下载地址 package com; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream...
  • jmeter解析csv文件时,需要设置编码http发送请求时,需要设置内容编码如果是使用java生成的jmx楼主使用的是utf-8/** JMETER_ENCODING 这个是楼主设置的常量,值是UTF-8 */// 1. 写入csv文件时,指定编码,private ...
  • 我操网上找了一个生成二维码的,可是一直找不到原因为何第二个带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编程中中文问题产生的根本原因,最后给出了建
  • test.txt文件内容: A中 2国 3 4 5 6 test.txt文件采用写字板保存为UTF-8格式 保存并关闭后使用写字板再次打开该UTF-8文档,中文、字母正常显示 测试代码: import java.io.BufferedReader; import java.io....
  • 问题来源focus 应用中核心的部分是,网络请求订阅的xml文件内容,然后解析xml文件存储到本地数据库。这里网络请求我使用的是retrofit,返回的类型是String,所以使用的是ScalarsConverterFactory的解析器。*就会出现...
  • Cpdetector识别网页编码 解决Java爬虫乱码问题概述在使用Java的第三方类库HttpClient或者OkHttp爬取网页文件时,由于网页编码的不同,导致有的页面中文存在乱码问题。为了能够正确解析网页内容,必须对网页的编码...
  • 读取外部xml或者Json文件显示中文1.xml方法使用xml解析中文十分的简单,首先我们需要准备一个xml文件。如下所示:string1欢迎学习cocos2dxstring2使用XML显示中文string3key与string标签中的内容是对应的在xml文件中...
  • 实习中处理上传网页的东西。无奈网页的编码文件有UTF-8 和 GBK两种格式,如果不转码中文...String 中只有全世界通用的Unicode而String str = new String(str.getBytes("..."),"...")是将str中的内容解析成相应的byte[]
  • 从Spring框架流行后,几乎根本不用自己写解析配置文件的代码了, ...碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象,   Java代码  Pr
  • 需求:需要读取远程服务文件,并且把文件内容的json数据解析到程序中使用 注意:解决中文乱码 (文件保存成utf-8编码即可) 代码: package com.example.demo.tan; import com.alibaba.fastjson.JSON; import ...
  • 最近遇到一个棘手的问题,老板给了几个.unl格式的文件,文本打开全是乱码,说是要求用java读取解析,给了个C写的解析过程,可我不懂C语言。虽然有格式文档但是怎么解都解不出正确的内容来,哪位大神有能将C语言翻译...
  • 从Spring框架流行后,几乎根本不用自己写解析配置文件的代码了,但近日一个基础项目(实在是太基础,不能用硕大繁琐的Spring),碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象...
  • 其中包括了.doc、.zip以及.rar格式的文件,在文件的的发送和接收过程中,(1).doc格式文件:接收端收到并解析出来的文件不能保持原有的文件内容格式,例如表格,特殊字符等在解析时出现乱码(2).zip以及.rar格式的...
  • 最近要研究微信,其聊天记录保存在data/data/com.tentcent.mm里的MicroMsg文件夹下,毫无疑问里面关键信息都被加密了。 该文件夹下CompatibleInfo.cfg是...这里贴上解析文件Java代码: import java.io.FileIn
  • 最近在看RSS相关的内容,想用Java实现一个RSS订阅的功能,代码还是比较简单的,只需要度渠道xml后使用其他格式解析即可。但注意需指定编码格式,否则会乱码。package com.cyz;import java.io.BufferedInputStream;...
  • 从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字节码的原理进制class文件就是字节码文件,直接是打不开,打开也是乱码,需要解析才能看明白里面的内容。现在存在很多语言都是允许在Jvm上,比如Kotlin。 他们其实就是通过编译也编译成Jvm认识的.class 文件即....

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 151
精华内容 60
关键字:

java解析文件内容乱码

java 订阅