首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的编码检测,是否使用chardet库?

Python中的编码检测,是否使用chardet库?
EN

Stack Overflow用户
提问于 2012-11-28 03:51:27
回答 2查看 5.9K关注 0票数 12

我正在写一个应用程序,它接受一些大量的文本作为输入,可以是任何字符编码,我想把它全部保存在UTF-8中。我不会接收或不能信任随数据一起定义的字符编码(如果有的话)。

我曾经使用Pythons库chardet来检测原始字符编码http://pypi.python.org/pypi/chardet,但最近遇到了一些问题,我注意到它不支持斯堪的纳维亚编码(例如iso-8859-1)。除此之外,它需要大量的时间/CPU/mem才能得到结果。对于2MB的文本文件,~40秒。

我尝试只使用标准的Linux文件

代码语言:javascript
复制
file -bi name.txt

到目前为止,它为我提供了100%的结果。对于一个2MB的文件,这个值约为0.1s。它也支持斯堪的纳维亚字符编码。

所以,我想使用文件的优势是显而易见的。它的缺点是什么?我是不是遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-29 19:54:53

由于编码不完全标准,旧的MS-DOS和Windows格式的文件可能会被检测为unknown-8位,而不是ISO-8859-X。相反,Chardet将执行有根据的猜测,并报告置信度值。

http://www.faqs.org/faqs/internationalization/iso-8859-1-charset/

如果您不想处理旧的、奇异的、不符合标准的文本文件,我认为您可以使用file -i而不会有太多问题。

票数 4
EN

Stack Overflow用户

发布于 2013-02-21 01:33:30

我发现"chared“(http://code.google.com/p/chared/)是相当准确的。您甚至可以为不支持的语言训练新的编码检测器。

当chardet开始出现问题时,这可能是一个很好的选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13591926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档