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

TIM*_*MEX 6 html python unicode encoding

根据这个答案:urllib2读取到Unicode

我必须获取内容类型才能更改为unicode.但是,有些网站没有"charset".

例如,页面的['content-type'] 是"text/html".我无法将其转换为unicode.

encoding=urlResponse.headers['content-type'].split('charset=')[-1]
htmlSource = unicode(htmlSource, encoding)
TypeError: 'int' object is not callable
Run Code Online (Sandbox Code Playgroud)

是否有默认的"编码"(当然是英文)......所以如果找不到任何内容,我可以使用它吗?

bob*_*nce 3

是否有默认的“编码”(当然是英语)...这样,如果没有找到任何内容,我就可以使用它?

不,没有。你一定猜到了。

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

如果你需要猜测其他语言,那就很麻烦了。有现有的模块可以帮助您在这些情况下进行猜测。参见例如。夏代

  • http 有默认编码,请参阅 RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7.1 (3认同)
  • 默认字符集是 ISO-8859-1。请参阅 RFC2616,第 3.7.1 和 3.4.1 节 (2认同)
  • RFC 7231 废弃了旧的 ISO-8859-1 默认值。http://tools.ietf.org/html/rfc7231#appendix-B (2认同)