【问题标题】:Encoding detection library in python [duplicate]python中的编码检测库[重复]
【发布时间】:2010-02-21 22:55:54
【问题描述】:

这与我的问题here有关。

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

我发现chardet 的自动检测功能非常好。然而,自动检测一切都是问题,因为它很慢并且非常不符合所有标准。根据chardetFAQ,我不想搞砸标准。

来自同一个常见问题解答是我要查找编码的位置列表:

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

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

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

【问题讨论】:

    标签: python html xml http character-encoding


    【解决方案1】:

    BeautifulSoupUnicodeDammit,而后者又使用chardet

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

    至于HTTP的Content-type标头,我想你需要自己阅读,提取charset参数,然后在fromEncoding参数中传递给UnicodeDammit

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

    【讨论】:

    【解决方案2】:

    BeautifulSoup(html 解析器)包含一个名为 UnicodeDammit 的类,它就是这样做的。看看你是否喜欢它。

    【讨论】:

    • 看起来很有前途。谢谢!
    猜你喜欢
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 2012-09-03
    • 2012-12-30
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多