python - python编码检测库

标签 python html xml http character-encoding

<分区>

这在某种程度上与我的问题 here 有关.

我处理大量通过 HTTP 获取的文本(主要是 HTML 和 XML)。我正在寻找一个 python 库,它可以根据不同的策略进行智能编码检测,并使用最佳可能的字符编码猜测将文本转换为 unicode。

我发现 chardet自动检测非常好。然而,自动检测一切都是问题,因为它很慢并且非常违反所有标准。根据 chardet FAQ我不想破坏标准。

来自同一个常见问题解答,这里列出了我要查找编码的位置:

  • HTTP 中的字符集参数 Content-type标题。
  • <meta http-equiv="content-type">中的元素 <head>网页的 HTML 文件。
  • XML 的 XML 序言中的编码属性 文件。
  • 自动检测字符编码作为最后的手段。

基本上我希望能够查看所有这些地方并自动处理冲突信息。

那里有这样的库还是我需要自己写?

最佳答案

BeautifulSoupUnicodeDammit ,它又使用 chardet .

chardet 本身对于一般情况(确定文本的编码)非常有用,但如您所说的那样慢。 UnicodeDammitchardet 之上添加了额外的功能,特别是它可以查找 XML 编码标签中明确指定的编码。

至于HTTP Content-type header,我觉得你需要自己去阅读,提取charset参数,然后传给UnicodeDammitfromEncoding 参数中。

至于解决冲突,UnicodeDammit 将优先考虑明确规定的编码(如果编码不产生错误)。有关完整详细信息,请参阅文档。

关于python - python编码检测库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2307795/

相关文章:

python - 创建一个新的比率列

javascript - 引用 javascript 文件以使用 visual studio 2010 intellisense

PHP 在另一个页面表单提交后自动刷新页面

html - 如何防止爬虫跟踪链接?

php - 警告 : Invalid argument supplied for foreach() in Magento error log

python - 使用Python在用户目录中创建空白文件夹

python - pyplot 到 3d pdf

javascript - 无法在普通 javascript 中从 xml 加载数据

python - 在python中使用ast.literal_eval(open (“filename”).readlines()[0])的语法错误

java - 如何在 Eclipse FormEditor 中实现撤销/重做功能?