码迷,mamicode.com
首页 > 编程语言 > 详细

写了个go语言版的chardet包

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

标签:os   ar   sp   c   r   bs   har   text   字符串   

    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包

标签:os   ar   sp   c   r   bs   har   text   字符串   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!