理解Response对象的编码

1. 为什么会有“编码”的概念

网络上的资源,他有他的编码,而且会有不同的编码方式。如果没有编码我们将没有办法有有效的解析方式,使得信息是人类可读的。

2. r.encoding 和 r.apparent_encoding 有什么区别

r.encoding:从HTTP header中猜测的响应内容编码方式。

如果header中存在charset字段,说明我们访问的服务器对它资源的编码方式是有要求的。可以使用r.encoding 来获取。

如果header中不存在charset字段,则认为默认编码为ISO-8859-1,但是这个编码不能解析中文。

r.apparent_encoding:根据网页内容分析出的编码方式。

所以可得出r.apparent_encoding 的编码比r.encoding 中的编码更加准确。当使用r.encoding 不能正确解码返回的内容的时候,我们可以使用apparent_encoding 来解码。

你可能感兴趣的:(理解Response对象的编码)