java自动根据文件内容的编码来读取避免乱码
2014-03-10 09:54
726 查看
通过cpdetector这个开源的jar包可以自动判断当前文件的内容编码,从而在读取的时候选择正确的编码读取,避免乱码问题。
原创不易,转载请注明出处:java自动根据文件内容的编码来读取避免乱码
测试结果,提供截图:
GBK文件内容
UTF8文件内容
运行结果:
代码下载地址:http://www.zuidaima.com/share/1550463235574784.htm
原创不易,转载请注明出处:java自动根据文件内容的编码来读取避免乱码
测试结果,提供截图:
GBK文件内容
UTF8文件内容
运行结果:
package com.zuidaima.test; import info.monitorenter.cpdetector.io.ASCIIDetector; import info.monitorenter.cpdetector.io.CodepageDetectorProxy; import info.monitorenter.cpdetector.io.JChardetFacade; import info.monitorenter.cpdetector.io.ParsingDetector; import info.monitorenter.cpdetector.io.UnicodeDetector; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; public class Main { public static String getContent(String path) throws Exception { File file = new File(path); CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance(); detector.add(new ParsingDetector(false)); detector.add(JChardetFacade.getInstance()); detector.add(ASCIIDetector.getInstance()); detector.add(UnicodeDetector.getInstance()); java.nio.charset.Charset charset = null; try { charset = detector.detectCodepage(file.toURI().toURL()); } catch (Exception ex) { ex.printStackTrace(); } String charsetName = null; if (charset != null) { charsetName = charset.name(); } else { charsetName = "UTF-8"; } BufferedReader reader = new BufferedReader(new InputStreamReader( new FileInputStream(file), charsetName)); String line = null; String lines = ""; while ((line = reader.readLine()) != null) { lines += line + "\n"; } reader.close(); return lines; } public static void main(String[] args) throws Exception { System.out.println(getContent("bin/gbk.txt")); System.out.println(getContent("bin/utf8.txt")); } }
代码下载地址:http://www.zuidaima.com/share/1550463235574784.htm
相关文章推荐
- Java自动根据文件内容的编码来读取避免乱码
- java自动根据文件内容的编码来读取避免乱码
- java.util.Properties读取中文内容的配置文件,发生中文乱码的现象有解决方案
- java按指定编码写入和读取文件内容
- Java 小例子:按指定的编码读取文本文件内容
- Java—读取多层嵌套Json文件的内容并根据索引返回JsonObject
- Java文件读写操作指定编码方式 -- 避免乱码
- Java 小例子:按指定的编码读取文本文件内容
- java按指定编码写入和读取文件内容的类
- java按指定编码写入和读取文件内容的类
- [转]java按指定编码写入和读取文件内容的类
- java按指定编码写入和读取文件内容的类
- Java:InputStream读取文本文件内容出现乱码问题的解决方法
- java读取ANSI编码或者UTF-8编码文件乱码问题解决
- Java一次读取文本文件所有内容(已知文件编码)
- Java IO操作——BufferedReader(缓冲区读取内容,避免中文乱码)
- java按指定编码写入和读取文件内容的类
- android读取文件时乱码的问题,以及eclipse中java编码查看方式
- java读取文件内容的编码问题
- Java中从txt文件中读取和存储内容出现乱码的解决之道一: