Python 库:charamel,号称用机器学习训练,支持60多种语言,近百种字符编码,准确率高达 97%
测试了下,一个简短的用 GBK
编码的 “七里香 - 周杰伦”,这个 charamel
准确预测
Linux 的 file
命令 和 另一个 Python 库 chardet
都预测不准(作者说不适合预测短文本[1][2])
~$ iconv -t 'GBK' <<<'七里香 - 周杰伦' | file --mime-encoding -
/dev/stdin: iso-8859-1
~$ python3 -c 'import chardet; print(chardet.detect("七里香 - 周杰伦".encode("GBK")))'
{'encoding': None, 'confidence': 0.0, 'language': None}
~$ python3 -c 'from charamel import Detector; print(Detector().detect("七里香 - 周杰伦".encode("GBK")))'
Encoding.GB_2312
看了下源码,过程很简单,不用依赖其他库,很容易移植至其他语言,感觉纯 C
百来行也行
站长不妨试试?