par*_*ier 5 html python xml http character-encoding
这与我的问题在某种程度上相关.
我处理通过HTTP获取的大量文本(主要是HTML和XML).我正在寻找一个python中的库,它可以根据不同的策略进行智能编码检测,并使用最佳的字符编码猜测将文本转换为unicode.
我发现chardet非常适合自动检测.然而,自动检测一切都是问题,因为它是缓慢的,并且非常违反所有标准.根据chardet
常见问题,我不想搞砸标准.
从同一个常见问题解答这里是我想要寻找编码的地方列表:
Content-type
标头中的charset参数.<meta http-equiv="content-type">
<head>
HTML文档网页中的元素.基本上我希望能够查看所有这些地方并自动处理冲突的信息.
那里有这样的图书馆还是我需要自己写呢?
Cra*_*een 10
BeautifulSoup的UnicodeDammit,反过来使用chardet.
chardet
本身对于一般情况(确定文本的编码)非常有用,但是如你所说的那样慢.UnicodeDammit
添加了额外的功能chardet
,特别是它可以查找XML编码标签中明确指定的编码.
对于HTTP Content-type
标头,我认为你需要阅读自己提取charset
参数,然后将其传递给UnicodeDammit
在fromEncoding
参数.
至于解决冲突,UnicodeDammit将优先使用显式声明的编码(如果编码不产生错误).有关详细信息,请参阅文档.