在项目中加入 这几个包都在附件的cpdetector_1.0.8_binary.zip中
- cpdetector_1.0.8.jar
- chardet.jar
- antlr.jar
/**
* 文件流中 读取字节编码
* @param in
* @return
* @throws Exception
* @throws IllegalArgumentException
*/
public static Charset getCharset(InputStream in){
/*------------------------------------------------------------------------
detector是探测器,它把探测任务交给具体的探测实现类的实例完成。
cpDetector内置了一些常用的探测实现类,这些探测实现类的实例可以通过add方法
加进来,如ParsingDetector、 JChardetFacade、ASCIIDetector、UnicodeDetector。
detector按照“谁最先返回非空的探测结果,就以该结果为准”的原则返回探测到的
字符集编码。
--------------------------------------------------------------------------*/
CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
/*-------------------------------------------------------------------------
ParsingDetector可用于检查HTML、XML等文件或字符流的编码,构造方法中的参数用于
指示是否显示探测过程的详细信息,为false不显示。
---------------------------------------------------------------------------*/
detector.add(new ParsingDetector(false));
/*--------------------------------------------------------------------------
JChardetFacade封装了由Mozilla组织提供的JChardet,它可以完成大多数文件的编码
测定。所以,一般有了这个探测器就可满足大多数项目的要求,如果你还不放心,可以
再多加几个探测器,比如下面的ASCIIDetector、UnicodeDetector等。
---------------------------------------------------------------------------*/
detector.add(JChardetFacade.getInstance());
//ASCIIDetector用于ASCII编码测定
detector.add(ASCIIDetector.getInstance());
//UnicodeDetector用于Unicode家族编码的测定
detector.add(UnicodeDetector.getInstance());
Charset charset = null;
BufferedInputStream bis = new BufferedInputStream(in);
try {
//1024表示 需要探测流中的前1024个字节
charset = detector.detectCodepage(bis, 1024);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// if(charset!=null){
// System.out.println("编码是:"+charset.name());
// }else{
// System.out.println("未知");
// }
return charset;
}
分享到:
相关推荐
Java-文件编码探测
本文将探讨如何使用Java进行文件编码格式的识别,主要介绍两种方法:一种是简单的UTF-8判断,另一种是使用开源库cpdetector。 首先,对于简单的UTF-8编码格式判断,我们可以直接读取文件的前三个字节来确定。UTF-8...
总的来说,Java中判断文件或文本流编码的方法主要包括直接读取文件头字节进行比较和使用第三方库进行复杂检测。前者适用于有限的编码格式,后者则提供了更全面的解决方案,适用于各种场景,尤其是处理用户上传或不可...
本文将深入探讨如何使用Java进行文件编码的检测,并基于提供的资源——`cpdetector_1.0.5.jar`、`chardet.jar`以及`FileCharsetDetector.java`来讲解这一过程。 首先,`cpdetector_1.0.5.jar`和`chardet.jar`是两个...
用于自动探测TXT文本文件编码,支持GB2312、UTF-8、ASCII等几乎所有主流编码的探测,使用方法如下: static public Encoding GetEncoding(string bookPath, ref string charsetName) { charsetName = ""; //1. ...
【单片机控制红外编码探测障碍物】技术详解 单片机控制的红外编码障碍物探测系统是一种广泛应用在室内环境中的自动感知技术。其工作原理是通过发射特定的红外信号,利用反射回来的信号判断是否有障碍物存在。然而,...
通过阅读和理解这段代码,你可以学习到如何在Java中处理不同编码的文件,以及如何在不确定编码的情况下进行探测和转换。 总之,理解字符编码以及如何在Java中处理它们是每个开发者的必备技能。无论是处理本地化文本...
在实际应用中,NAT探测和STUN协议的使用流程通常包括以下几个步骤: 1. 客户端发起一个STUN请求到已知的STUN服务器。 2. STUN服务器接收到请求后,记录下请求的源IP和端口,并将这些信息封装在一个响应消息中。 3. ...
如果很多时候我们没有约定好文件格式,我们就难以读取文件内容,此时,我们就需要一个工具来探测所读文本的编码格式,此工具可以允许用户读取诸如utf-8,gbk,gb2312一类的文件格式。内置了一些常用的探测实现类,...
2. **易用性**:`cpdetector`为Java开发者提供了一个简单易用的API,通过几行代码就能集成到项目中,实现文件编码的探测。 3. **兼容性**:由于是基于Java的,所以`cpdetector`可以在任何支持Java的平台上运行,具有...
NULL 博文链接:https://zhifeiji512.iteye.com/blog/1221068
Java作为一种广泛使用的编程语言,提供了多种方式来判断文件或文本流的编码。以下是对标题和描述中所述知识点的详细解释: 1. **文件编码的概念**:文件编码指的是在文件中存储字符的方式。常见的文件编码包括ASCII...
文本(文件+网页)编码检测java library, cpdetector_1.0.10. 关于java中GBK与UTF-8编码的转换 及 利用 cpdetector开源框架检测编码的方法参看: https://blog.csdn.net/jhsword/article/details/93618735
【单片机控制红外编码探测障碍物】技术详解 单片机控制的红外编码障碍物探测系统是一种广泛应用在室内自动化设备中的技术,主要用于检测周围环境中的障碍物。该技术通过发射和接收红外信号来判断是否有物体阻挡。在...
detect and convert encoding of text files 编码探测/转换工具 此包为编译后的目录
"cpdetector.jar" 是一个基于Java的开源工具,主要用于检测文件的字符编码。在软件开发过程中,正确识别和处理文件的编码格式至关重要,因为不同的文件可能采用不同的编码标准,如UTF-8、GBK、ISO-8859-1等。如果不...
"基于扩频编码的电磁探测系统研究" 本文研究基于扩频编码的电磁探测系统,该系统旨在解决输电线路下采空区的探测问题。采空区是指矿山开采后留下的空隙区域,对地表电力设施构成巨大威胁。传统探测方法如高密度电法...
它包含了对常见浏览器和设备的识别,帮助开发者快速识别用户所使用的设备类型(如移动设备、桌面电脑)、浏览器类型(如Chrome、Firefox)及其版本信息,甚至可以探测到操作系统(如Windows、iOS、Android)。...