`
fandayrockworld
  • 浏览: 312916 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用cpdetector判断文本文档的编码

 
阅读更多

文本文档不包含文档的编码信息,然而有些时候,我们必须要获得某个文件的编码,这时候怎么办?

 

1、自己造轮子,通过对各种编码的判断,确定其所属编码。

这种方式难度较大,而且对编码知识的要求较高。

 

2、借助其他已经存在的工具。

在网上找到了这个东西:cpdetector。看了下他自己的介绍,感觉其初衷是为抓取html而不能确定其编码而写的,里面有的方法可以直接通过传入url的方式确定其编码。

 

下面是个通俗的例子:

 

package encoding;

import info.monitorenter.cpdetector.io.ASCIIDetector;
import info.monitorenter.cpdetector.io.ByteOrderMarkDetector;
import info.monitorenter.cpdetector.io.CodepageDetectorProxy;
import info.monitorenter.cpdetector.io.UnicodeDetector;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;


public class CPDetectorTest {
	public static void main(String[] args) {
		System.out.println(getEncoding(new File("c:/test.txt")));
	}
	
	public static String getEncoding(File document) {

		CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
		
	    detector.add(new ByteOrderMarkDetector()); 
	    detector.add(ASCIIDetector.getInstance());
	    detector.add(UnicodeDetector.getInstance());
		
		boolean ret = false;
	    java.nio.charset.Charset charset = null;
	    try {
			charset = detector.detectCodepage(document.toURL());
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
	    return charset.toString();
	}
}

 

注意其中的这三行:

detector.add(new ByteOrderMarkDetector()); 
detector.add(ASCIIDetector.getInstance());
detector.add(UnicodeDetector.getInstance());
 

这是加载其内置的检测器,通过名字可以看出来其所能检测的字符集。

同时,上面的代码不能检测出gb2312等编码,没仔细找到底有没有gb2312等的检测器。

如果不能检测出的话,会返回一个void。

 

分享到:
评论

相关推荐

    cpdetector检测文件的编码

    在实际开发中,"cpdetector"不仅可以用于单个文件,也可以用于批量处理多个文件,例如在处理大量未知编码的文本数据时,这个工具可以大大提高工作效率。同时,由于其支持文件流,因此适用于处理大文件,避免一次性...

    java判断文件编码格式 三方工具包 cpdetector_1.0.10.jar

    总的来说,`cpdetector_1.0.10.jar`是Java开发中的一个实用工具,它提供了高效且准确的文件编码检测功能,帮助开发者更好地处理文本数据,避免因编码问题而引发的程序异常。通过理解并熟练使用这类工具,可以提升...

    获取zip文件编码格式 cpdetector.zip

    "获取zip文件编码格式 cpdetector.zip" 是一个工具,它能够帮助我们识别ZIP文件内文本文件的编码格式。 这个工具的关键依赖于三个JAR文件:antlr-1.0.jar、cpdetector-1.08.jar和jchardet-1.0.jar。这些库提供了...

    使用cpdetector 三方库读取文件编码

    "使用cpdetector 三方库读取文件编码"的主题聚焦于如何利用cpdetector这个第三方库来检测和识别不同文件的字符编码。cpdetector是Java编程语言中的一个实用工具,它结合了jchardet库,提供了一种高效、准确的方式来...

    获取文件编码方式的两种方式(1.cpdetector第三方jar包,包含源码elipse项目;2.EncodingDetect.java工具类)

    在Java编程中,正确识别和处理文件的编码方式至关重要,特别是在处理不同系统间的数据交换或者解析非ASCII字符的文本文件时。本篇文章将详细介绍两种常用的方法来检测Java程序中的文件编码:一是使用`cpdetector`第...

    java文本编码检测jar包_cpdetector_1.0.10_binary.zip

    文本(文件+网页)编码检测java library, cpdetector_1.0.10. 关于java中GBK与UTF-8编码的转换 及 利用 cpdetector开源框架检测编码的方法参看: https://blog.csdn.net/jhsword/article/details/93618735

    Java判断文件编码格式 - 明明是悟空 - 博客园1

    本文将探讨如何使用Java进行文件编码格式的识别,主要介绍两种方法:一种是简单的UTF-8判断,另一种是使用开源库cpdetector。 首先,对于简单的UTF-8编码格式判断,我们可以直接读取文件的前三个字节来确定。UTF-8...

    判断编码格式.rar antlr.jar chardet.jar cpdetector_1.0.5.jar

    标题中的“判断编码格式.rar”表明这是一个关于识别文件或文本编码类型的工具或程序集合。它包含的三个文件“antlr.jar”,“chardet.jar”,以及“cpdetector_1.0.5.jar”都是与字符编码检测相关的Java库。 1. **...

    Java cpdetector获取文件编码格式所需Jar包

    `cpdetector`提供了多种编码识别算法,可以帮助程序自动识别文件的正确字符集,避免在处理文本时出现乱码问题。 `cpdetector`主要由以下组件组成: 1. **CharsetDetector**:这是核心类,实现了编码检测的主要逻辑...

    java判断文件编码或文本流编码的方法宣贯.pdf

    在Java编程中,判断文件或文本流的编码是处理文本数据时的重要步骤,尤其是在处理包含多种语言或特殊字符的文件时。以下将详细介绍如何在Java中进行文件编码的判断。 首先,基本的判断方法是通过读取文件的前三个...

    java更改文件的编码jar包:cpdetector

    1. **编码检测**:它提供了多种编码检测器,如ISO-8859-1、UTF-8、GBK等,能够自动检测文本文件的字符编码,这对于处理来自不同来源的数据非常有用。 2. **易用性**:`cpdetector`为Java开发者提供了一个简单易用的...

    antlr chardet cpdetector jar包

    例如,在爬虫项目中,当抓取的网页编码未知时,可以先利用Chardet进行预判,再用CPDetector进一步确认,从而确保正确解析和处理文本内容,避免乱码问题。同时,ANTLR可以用来解析这些文本中的结构信息,如XML、HTML...

    cpdetector antlr chardet jar包

    `cpdetector`, `antlr`, 和 `chardet` 是三个与文档编码解析相关的Java库,它们在处理不同编码格式的文件时发挥着关键作用。接下来,我们将深入探讨这三个库以及它们在`jar`包中的应用。 `cpdetector`,全称为...

    cpdetector_1.0.10自动识别网页文件编码

    【标题】"cpdetector_1.0.10自动识别网页文件编码" 是一个软件工具,主要用于检测和识别网页文件的字符编码。这个版本是1.0.10,表明这是一个经过多次迭代优化的成熟软件。 【描述】"cpdetector自动识别网页文件...

    网页编码解析包(chardet.jar,cpdetector_1.0.7.jar)

    接着,如果结果不确定或者需要更高的准确性,可以引入`cpdetector_1.0.7.jar`,利用`ICU4J`和`jChardet`进一步确认编码。在确定了正确的编码后,就可以将文件内容正确地解码为字符串,进而进行后续的处理,如HTML...

    cpdetector.jar java检测文件编码开源jar包

    在实际开发中,cpdetector 可能会用在各种场景,例如文件读写、数据导入导出、文本处理等,确保程序能够正确解析和处理不同编码的文件。通过理解并熟练使用cpdetector.jar,开发者可以提高工作效率,减少因编码问题...

    java识别文件编码cpdetector_1.0.10.jar,chardet.jar,antlr-2.7.7.jar

    Java是一种广泛使用的编程语言,尤其在企业级应用和服务器端开发中占据主导地位。在处理文本文件时,正确识别文件的编码方式至关重要...在开发过程中,熟练掌握并利用这些库,可以显著提高处理文本数据的效率和准确性。

    cpdetector.zipcpdetector.zipcpdetector.zip

    描述中的"文件编码的判断"进一步确认了我们的理解,即"cpdetector"可能是一个用于检测文件所使用的字符编码(如ASCII、UTF-8、GBK等)的工具。文件编码对于正确显示非英文字符至关重要,特别是处理中文、日文、韩文...

    获取文本文件编码

    描述:此工具是用来获取某个目录下的文本文件编码.它依赖于java,在命令下运行....这工具是基于cpdetector项目,它检查文件的编码可能不完全正确,但非常准确.如文本都是纯字母,可能都判为utf-8.一定要看readme.txt哦

    antlr-2.7.6.jar,cpdetector_1.0.10.jar,chardet.jar下载,IO流相关Jar包

    例如,如果一个项目需要处理来自不同来源的文本数据,首先使用Chardet.jar检测数据的编码,然后使用ANTLR解析数据的结构,最后利用CPDetector确保在整个处理过程中正确处理了字符编码,从而避免出现乱码问题。...

Global site tag (gtag.js) - Google Analytics