写了个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,其他几乎所有的编码格式都是单字节的,检测个毛啊……


转载于:https://my.oschina.net/liudiwu/blog/314483

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值