首页 > 编程语言 > 详细

写了个go语言版的chardet包

时间:2014-09-17 02:28:01      阅读:241      评论:0      收藏:0      [点我收藏+]

    github.com/hydra13142/chardet

以上就是地址。支持中文编码(hz-gb2312、big5、gbk、gb18030)、韩文编码(euc-kr)、日文编码(shift-jis、euc-jp、iso-2022-jp)和unicode编码(UTF-8、UTF-16BE、UTF-16LE、UTF-32BE、UTF-32LE)的检测。

除了合法性检测之外,还会根据字符分布来进一步检测,返回得分最高的。当然这一步就不能保证准确性了,如果文本不是那种特别怪异的,大致上还是能保证检测正确的。

本包只有两个函数:

// 本函数返回文本最可能的编码格式
func Mostlike([]byte) string

// 本函数返回文本所有可能的编码格式,可能性越高越靠前
func Possible([]byte) []string

返回的字符串就是上述编码的字符串名称(小写版本)。

为啥只有这些编码可以检测?

当然是因为第一code.google.com/p/go.text包里只有这些编码格式的编解码器;第二除了中日韩还有unicode,其他几乎所有的编码格式都是单字节的,检测个毛啊……


写了个go语言版的chardet包

原文:http://my.oschina.net/u/593413/blog/314483

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!