当前位置:  软件>java软件

编码检测工具 juniversalchardet

    来源:    发布时间:2015-01-27

    本文导语:  Mozilla在很多年前就做了一个非常优秀的编码检测工具,叫chardet(java版jchardet ),后来有发布了算法更加优秀的universalchardet,用于Firefox的自动编码识别。另外Apache内容抽取项目Tika的发布包tika-app-1.*.jar(自1.2及以后版本)其中打包...

Mozilla在很多年前就做了一个非常优秀的编码检测工具,叫chardet(java版java软件 iis7站长之家),后来有发布了算法更加优秀的universalchardet,用于Firefox的自动编码识别。另外Apache内容抽取项目Tika的发布包tika-app-1.*.jar(自1.2及以后版本)其中打包了juniversalchardet。

注意:如果试图识别几个字节的短文本编码,可能会出现了识别错误,这应该是算法实现本身的缺陷,但识别稍大一点文本编码,正确率则非常高,尤其较chardet要高的多。

Encodings that can be detected
  • Chinese
    • ISO-2022-CN
    • BIG5
    • EUC-TW
    • GB18030
    • HZ-GB-23121
  • Cyrillic
    • ISO-8859-5
    • KOI8-R
    • WINDOWS-1251
    • MACCYRILLIC
    • IBM866
    • IBM855
  • Greek
    • ISO-8859-7
    • WINDOWS-1253
  • Hebrew
    • ISO-8859-8
    • WINDOWS-1255
  • Japanese
    • ISO-2022-JP
    • SHIFT_JIS
    • EUC-JP
  • Korean
    • ISO-2022-KR
    • EUC-KR
  • Unicode
    • UTF-8
    • utf-8BE / utf-8LE
    • UTF-32BE / UTF-32LE / X-ISO-10646-UCS-4-34121 / X-ISO-10646-UCS-4-21431
  • Others
    • WINDOWS-1252

 

 

Related Works    jchardet    jchardet is another Java port of the Mozilla's encoding dectection library. The main difference between jchardet and juniversalchardet is modules they are based on. jchardet is based on the 'chardet' module that has long existed. juniversalchardet is based on the 'universalchardet' module that is new and generally provides better accuracy on detection results.

 

Sample Code

 

import org.mozilla.universalchardet.UniversalDetector;

public class TestDetector {
  public static void main(String[] args) throws java.io.IOException {
    byte[] buf = new byte[4096];
    String fileName = args[0];
    java.io.FileInputStream fis = new java.io.FileInputStream(fileName);

    // (1)
    UniversalDetector detector = new UniversalDetector(null);

    // (2)
    int nread;
    while ((nread = fis.read(buf)) > 0 && !detector.isDone()) {
      detector.handleData(buf, 0, nread);
    }
    // (3)
    detector.dataEnd();

    // (4)
    String encoding = detector.getDetectedCharset();
    if (encoding != null) {
      System.out.println("Detected encoding = " + encoding);
    } else {
      System.out.println("No encoding detected.");
    }

    // (5)
    detector.reset();
  }
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.print类docflavor的类成员方法:默认编码和平台编码定义及介绍
  • 求救:JAVA 中汉字编码怎样变成 VC 下的汉字编码?
  • 中文汉字编码知识及各种中文编码对应的编码区间总结
  • aix socket进程为何收到客户端的编码都是ISO-8859-1编码?
  • Python获取网页编码的方法及示例代码
  • iconv可以用来转换文字编码,有没有可以用来识别编码的?
  • MyEclipse如何查看和设置文件编码格式相关操作
  • 怎么把字符串转为:unicode 编码?又如何把unicode编码转为字符串(有中文)?
  • Base64编码原理详解及c++编码解码实现
  • 谁能给我讲讲UNIX下编码与编码设置与编码转化问题。。。
  • Python3中内置类型bytes和str用法及byte和string之间各种编码转换
  • 在jsp中如何判断传来的字符串是8859-1编码还是gb2312编码方式
  • Linux/CentOS/fedora下vim显示的字符编码设置
  • c#字符串编码编码(encoding)使用方法示例
  • 文件编码及UTF-8、BOM、0XFEFF相关问题
  • python处理中文编码和判断编码示例
  • 广告系统中weak-and算法原理及编码验证
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • Java读写包括中文的txt文件时不同编码格式问题解决
  • php字符串编码转换函数 可以自动识别原编码
  • windows平台 vs2008进行c++编码的相关设置介绍
  • 修改mysql5.5默认编码(图文步骤修改为utf-8编码)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3