根据此答案:urllib2读取为Unicode
我必须获取内容类型才能更改为unicode。但是,某些网站没有“字符集”。
例如,此页面的[‘content-type’]是“ text / html”。我无法将其转换为unicode。
encoding=urlResponse.headers['content-type'].split('charset=')[-1] htmlSource = unicode(htmlSource, encoding) TypeError: 'int' object is not callable
是否有默认的“编码”(当然是英文)…,以便在找不到任何内容的情况下可以使用它?
不,没有。你必须猜。
平凡的方法:尝试将解码为UTF-8。如果有效,则可能是UTF-8。如果不是,请为您正在浏览的页面类型选择最可能的编码。对于英文页面cp1252,即Windows西欧编码。(这就像ISO-8859-1;实际上cp1252,iso-8859-1即使您指定了该字符集,大多数浏览器也会使用而不是,因此值得复制该行为。)
UTF-8
cp1252
iso-8859-1
如果您需要猜测其他语言,它将变得非常冗长。现有模块可以帮助您在这些情况下进行猜测。参见例如。沙丁鱼。