首页 > 代码库 > 写了个go语言版的chardet包
写了个go语言版的chardet包
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包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。