精华内容
下载资源
问答
  • NULL 博文链接:https://liuzidong.iteye.com/blog/776637
  • 今天小编就为大家分享一篇完美解决Java获取文件路径出现乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • java 读取文件乱码

    2019-04-06 01:13:00
    NULL 博文链接:https://call-me-java-126-com.iteye.com/blog/1544324
  • java 解析csv文件例子,csv文件 中文乱码问题
  • java解析文件乱码解决

    2012-01-20 02:05:58
    非常不错的资料,自己总结的东西,希望有帮助
  • NULL 博文链接:https://thinktothings.iteye.com/blog/1536044
  • 解决java读取文件乱码问题

    千次阅读 2019-05-30 10:41:12
    个人笔记 private static String getFileContent(String filePath) { StringBuilder result = new StringBuilder(); try{ BufferedReader br = new BufferedReader(new InputStreamReader(new FileInp...

    个人笔记

    private static String getFileContent(String filePath) {
    		
    	StringBuilder result = new StringBuilder();
        try{
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath),"UTF-8"));
            String s = null;
            while((s = br.readLine())!=null){
                result.append(System.lineSeparator()+s);
            }
            br.close();    
        }catch(Exception e){
            e.printStackTrace();
        }
        return result.toString();
    		
    }

     

    展开全文
  • java 解析XML 乱码

    2020-01-06 08:56:00
    // 1.创建Reader对象 SAXReader reader = new SAXReader(); reader.setEncoding("utf-8");// 如果有乱码这里设置成utf-8即可,这里只支持两种编码格式,GBK直接转utf-8即可,不支持填写gbk //2.加载xml ...
    //            1.创建Reader对象
                SAXReader reader = new SAXReader();
                reader.setEncoding("utf-8");// 如果有乱码这里设置成utf-8即可,这里只支持两种编码格式,GBK直接转utf-8即可,不支持填写gbk
                //2.加载xml
                Document document = reader.read("文件路径");
                //3.获取根节点
                Element rootElement = document.getRootElement();
                Element body = rootElement.element("body");
                Element response = body.element("response");
                Element OrigRptJson = response.element("OrigRptJson");
                String jsonstr = OrigRptJson.getStringValue();
                JSONObject jsonObject = (JSONObject) JSONObject.parse(jsonstr);
                JSONObject creditDetail = jsonObject.getJSONObject("creditDetail");
                JSONArray assetDisposition = creditDetail.getJSONArray("assetDisposition");
                logger.info("解析的内容assetDisposition:{}",assetDisposition);
                List<Map<String,String>> list = (List<Map<String,String>>)JSONArray.parse(String.valueOf(assetDisposition));
                for (Map<String,String> a :list
                ) {
                    logger.info("解析的内容:{}",a);
                    String b= a.get("organname");
                    logger.info("解析的内容:{}",b);
                }
    
    

    接收从其他地方传过来的String格式的xml

    Document document = DocumentHelper.parseText(creditJson);//creditJson String 格式的xml
                document.setXMLEncoding("utf-8");//设置编码格式源文件是GBK不设置会有乱码
                //3.获取根节点
                Element rootElement = document.getRootElement();
                Element body = rootElement.element("body");
                Element response = body.element("response");
                Element OrigRptJson = response.element("OrigRptJson");
                String jsonstr = OrigRptJson.getStringValue();
                JSONObject jsonObject = (JSONObject) JSONObject.parse(jsonstr);
                JSONObject creditDetail = jsonObject.getJSONObject("creditDetail");
                JSONArray assetDisposition = creditDetail.getJSONArray("assetDisposition");//这里获取到的是一个list所以用JSONArray 接收
                logger.info("解析的内容assetDisposition:{}",assetDisposition);
                List<Map<String,String>> list = (List<Map<String,String>>)JSONArray.parse(String.valueOf(assetDisposition));
                for (Map<String,String> a :list
                ) {
                    logger.info("解析的内容:{}",a);
                    String b= a.get("organname");
                    logger.info("解析的内容:{}",b);
                }
                logger.info("返回的数据-----------{}",creditJson);
                if (creditJson != null && creditJson.length() > 0) {
                    requestJson = JSONObject.parseObject(creditJson);
                }
    
    展开全文
  • 该jar包为java实现的解析wis文件的jar包,读入wis文件,可生成csv文件; 支持一维,二维数据的解析,针对wis文件数据单元所占字节不同作了调整
  • java解析DXF文件信息,这里涉及到各种转换字符串编码的操作,解决了解析过程中遇到中文的乱码问题,包括circle,ellipse,line,lwpolyline等,还涉及到从DXF文件中读取一个字符串、判断CIRCLE实体、判断ellipse实体、...
  • java 解析dat文件实例

    热门讨论 2013-07-17 16:29:21
    java读取dat文件类型的数据,其中是代码的实例说明,简单易懂,例子很实际
  • JAVA读取文件里面部分汉字内容乱码

    千次阅读 2018-05-18 19:47:25
    JAVA读取文件里面部分汉字内容乱码读取一个txt文件,到代码中打印出来,发票有部分汉字的内容乱码的。我开始的方式是这样的, 如下,这是完全错误的,汉字是两个字节的,如果每次读固定个字节,可能会把汉字截断。...

    JAVA读取文件里面部分汉字内容乱码

    读取一个txt文件,到代码中打印出来,发票有部分汉字的内容是乱码的。我开始的方式是这样的, 如下,这是完全错误的,汉字是两个字节的,如果每次读固定个字节,可能会把汉字截断。就会出现部分乱码的情况。

    package susq.path;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    
    /**
     * @author susq
     * @since 2018-05-18-19:28
     */
    public class WrongMethodReadTxt {
        public static void main(String[] args) throws IOException {
            ClassLoader classLoader = WrongMethodReadTxt.class.getClassLoader();
            String filePath = classLoader.getResource("").getPath() + "/expect1.txt";
    
            System.out.println(filePath);
    
            File file = new File(filePath);
            try (FileInputStream in = new FileInputStream(file)) {
                byte[] bytes = new byte[1024];
                StringBuffer sb = new StringBuffer();
                int len;
                while ((len = in.read(bytes)) != -1) {
                    sb.append(new String(bytes, 0, len));
                }
                System.out.println(sb.toString());
            }
        }
    }

    如果存在汉字,就要按字符的方式读取:

    package susq.path;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    
    /**
     * @author susq
     * @since 2018-05-18-17:39
     */
    public class SysPath {
        public static void main(String[] args) throws IOException {
            ClassLoader classLoader = SysPath.class.getClassLoader();
            String filePath = classLoader.getResource("").getPath() + "/expect1.txt";
    
            System.out.println(filePath);
    
            File file = new File(filePath);
            try (BufferedReader br = new BufferedReader(new FileReader(file))) {
                StringBuffer sb = new StringBuffer();
                while (br.ready()) {
                    sb.append(br.readLine());
                }
                System.out.println(sb);
            }
        }
    }

    展开全文
  • java读取txt文件乱码解决方案

    千次阅读 2017-09-19 14:42:52
    txt文档编码格式都是写在文件头的,在程序中需要先解析文件的编码格式,获得编码格式后,在按此格式读取文件就不会产生乱码了。     代码示例如下:     Java代码  ...

    因为txt默认的选项是ANSI,即GBK编码。GBK和GB2312都是中文编码,在这里解释一下两者的区别。

    总体说来,GBK包括所有的汉字,包括简体和繁体。而gb2312则只包括简体汉字。

    GBK:   汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,并涵盖了原Unicode中所有的汉字20902,总共收录了883个符号,   21003个汉字及提供了1894个造字码位。   Microsoft简体版中文Windows   95就是以GBK为内码,又由于GBK同时也涵盖了Unicode所有CJK汉字,所以也可以和Unicode做一一对应。

    GB码,全称是GB2312-80《信息交换用汉字编码字符集 基本集》,1980年发布,是中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。P-Windows3.2和苹果OS就是以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码、但兼容支持GB2312。GB码共收录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼音排序,二级字3008,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。

     

    GBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。GBK工作小组于1995年10月,同年12月完成GBK规范。该编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。

     

    那么如何查看txt的编码呢,教你一个笨笨的办法:打开文件——另存为,然后看到最下面的编码,默认选择的就是当前文档的编码格式)。

    txt文本文档有四种编码选项:ANSI、Unicode、Unicode big endian、UTF-8;默认应该是ANSI选项,就是系统的默认编码,一般是GBK。

    因此我们读取txt文件可能有时候并不知道其编码格式,所以需要用程序动态判断获取txt文件编码,这里给一点资料,参考参考:  

    ANSI: 无格式定义  

    Unicode:  前两个字节为FFFE Unicode文档以0xFFFE开头

    Unicode big endian: 前两字节为FEFF  

    UTF-8: 前两字节为EFBB UTF-8以0xEFBBBF开头

    用程序取出前几个字节并进行判断即可。

     

    首先对java中得编码格式进行了研究。发现在java中

    java编码与txt编码对应
    javatxt
    unicodeunicode big endian
    utf-8utf-8
    utf-16unicode
    gb2312ANSI

     

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

     

     

    代码示例如下:

     

     

    Java代码   收藏代码
    1. package com.lfl.attachment;  
    2.   
    3. import java.io.BufferedReader;  
    4. import java.io.File;  
    5. import java.io.FileInputStream;  
    6. import java.io.InputStream;  
    7. import java.io.InputStreamReader;  
    8.   
    9. public class TextMain {  
    10.   
    11.     public static void main(String[] args) throws Exception {  
    12.         String filePath = "D:/article.txt";  
    13. //      String filePath = "D:/article333.txt";    
    14. //      String filePath = "D:/article111.txt";    
    15.         String content = readTxt(filePath);  
    16.         System.out.println(content);  
    17.           
    18.     }  
    19.   
    20.       
    21.       
    22.     /** 
    23.      * 解析普通文本文件  流式文件 如txt 
    24.      * @param path 
    25.      * @return 
    26.      */  
    27.     @SuppressWarnings("unused")  
    28.     public static String readTxt(String path){  
    29.         StringBuilder content = new StringBuilder("");  
    30.         try {  
    31.             String code = resolveCode(path);  
    32.             File file = new File(path);  
    33.             InputStream is = new FileInputStream(file);  
    34.             InputStreamReader isr = new InputStreamReader(is, code);  
    35.             BufferedReader br = new BufferedReader(isr);  
    36. //          char[] buf = new char[1024];  
    37. //          int i = br.read(buf);  
    38. //          String s= new String(buf);  
    39. //          System.out.println(s);  
    40.             String str = "";  
    41.             while (null != (str = br.readLine())) {  
    42.                 content.append(str);  
    43.             }  
    44.             br.close();  
    45.         } catch (Exception e) {  
    46.             e.printStackTrace();  
    47.             System.err.println("读取文件:" + path + "失败!");  
    48.         }  
    49.         return content.toString();  
    50.     }  
    51.       
    52.       
    53.       
    54.     public static String resolveCode(String path) throws Exception {  
    55. //      String filePath = "D:/article.txt"; //[-76, -85, -71]  ANSI  
    56. //      String filePath = "D:/article111.txt";  //[-2, -1, 79] unicode big endian  
    57. //      String filePath = "D:/article222.txt";  //[-1, -2, 32]  unicode  
    58. //      String filePath = "D:/article333.txt";  //[-17, -69, -65] UTF-8  
    59.         InputStream inputStream = new FileInputStream(path);    
    60.         byte[] head = new byte[3];    
    61.         inputStream.read(head);      
    62.         String code = "gb2312";  //或GBK  
    63.         if (head[0] == -1 && head[1] == -2 )    
    64.             code = "UTF-16";    
    65.         else if (head[0] == -2 && head[1] == -1 )    
    66.             code = "Unicode";    
    67.         else if(head[0]==-17 && head[1]==-69 && head[2] ==-65)    
    68.             code = "UTF-8";    
    69.             
    70.         inputStream.close();  
    71.           
    72.         System.out.println(code);   
    73.         return code;  
    74.     }  
    75.       
    76. }  

     

     注意:在resolveTxt方法中不能通过readTxt方法传InputStream流 ,这样会使两个方法持有同一个流引用,而在resolveTxt方法中已读过流中的三个字节,流中的pos此时已经是3了,而不是流的起始位置,再在readTxt中读取时就会出现IOException:Read Error。

    展开全文
  • 彻底解决JAVA读取写入 TXT中文乱码问题 源码
  • Java文件读取 中文乱码

    千次阅读 2017-11-06 08:22:00
    变量是有编码的格式要求的,默认情况下,读取文件的时候会根据系统的默认编码来读取,这种情况下,肯定就是乱码了,因为读取进去的就是 , 赋值给 String 就是 GBK 编码。   问题 2 : utf-8 带 BOM 的文件会...
  • java 读取文件 乱码

    千次阅读 2015-10-15 16:49:30
     我们在开发中经常会遇到java读取文件乱码的问题,也许快速的百度能解决问题,但只有掌握了内部原理,我们才算真正的“解决”掉问题了。 示例: 1 b.txt中只有一个字“卡”,保存编码格式为gbk,查看输出结果 ...
  • java读取json文件中文乱码

    千次阅读 2020-04-28 17:55:40
    //从json文件中读取数据 StringBuffer stringBuffer = new StringBuffer(); try { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); //...
  • 主要问题:xml文件配置编码格式与文件本身的编码格式不统一 检查你的xml中 encoding= “UTF-8” 还是 其他格式 一般的在代码中设置编码格式UTF-8 和 GB2312 不完全是不通用的,如果不通,换成对应的就可以 ...
  • java读取INI文件

    2018-02-28 15:22:58
    jar包。包含DOC文档。能够读取ini格式的配置文件。欢迎下载,有问题请留言。
  • NULL 博文链接:https://rangerwolf.iteye.com/blog/1222882
  • 如果你检查了项目或编译器所有的编码格式都没有问题,直接去看这第四个方法可能会帮助你
  • 读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(还是以支付宝对账单为例)
  • Java DOM解析Xml中文乱码问题

    千次阅读 2015-08-24 00:32:55
    xml文件中已经指定utf-8编码方式,里面可包含多条数据记录(我在这里称之为数据单元),采用的是字符流BufferedReader作为InputSource的输入源。 其中参数String dataUnitTag表示数据单元的标签,String []commArr...
  • java导出文件处理文件名中文乱码

    千次阅读 2020-09-01 11:26:42
    //处理导出时文件名中文乱码 String userAgent = request.getHeader(“User-Agent”); String filename = “”; if (null != userAgent && -1 != userAgent.indexOf(“MSIE”) || null != userAgent &&...
  • 乱码的问题都是由编码引起的。解决此问题的方法是: 只需在接到字符后重新编码即可,具体实例代码如下: 在使用FileItem处,转换编码方式。  FileItem item=(FileItem)itr.next(); String tName=item.getString...
  • Java里面读取csv文件中文乱码

    千次阅读 2018-09-14 10:56:00
    csv文件默认编码为ANSI,这里出现乱码主要是编码不一致问题DataInputStreamin=newDataInputStream(newFileInputStream(newFile("d:\\*.csv"))); BufferedReaderbr=newBufferedReader(newInputStreamReader(in,"G...
  • 我使用的是Html2Image来解析HTML生成图片,在本地测试的时候,生成的图片没有问题,但放到Linux服务器之后,发现生成出来的图片中文会显示乱码。后来,查明原因,是因为Linux服务器中没有安装中文字体,后面通过安装...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,137
精华内容 16,054
关键字:

java解析文件内容乱码

java 订阅