一尘不染

默认的内容类型/字符集是什么?

python

根据此答案: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

是否有默认的“编码”(当然是英文)…,以便在找不到任何内容的情况下可以使用它?


阅读 195

收藏
2021-01-20

共1个答案

一尘不染

是否有默认的“编码”(当然是英文)…,以便在找不到任何内容的情况下可以使用它?

不,没有。你必须猜。

平凡的方法:尝试将解码为UTF-8。如果有效,则可能是UTF-8。如果不是,请为您正在浏览的页面类型选择最可能的编码。对于英文页面cp1252,即Windows西欧编码。(这就像ISO-8859-1;实际上cp1252iso-8859-1即使您指定了该字符集,大多数浏览器也会使用而不是,因此值得复制该行为。)

如果您需要猜测其他语言,它将变得非常冗长。现有模块可以帮助您在这些情况下进行猜测。参见例如。沙丁鱼

2021-01-20