如何使用西里尔文下载utf-8编码的内容

时间:2018-06-29 08:31:07

标签: python http encoding

请告诉我西里尔字母正确获取utf-8内容的方法。

我使用下一个代码段:

press()

结果,我得到了一些类似的内容:

from http.client import HTTPSConnection

conn = HTTPSConnection('lifehacker.ru')
conn.request('GET', '/')
resp = conn.getresponse()
st = resp.read()
content = ''.join(map(chr, st))
conn.close()
print(content)

如何获取正确的西里尔字母符号?

2 个答案:

答案 0 :(得分:1)

您应该解码这样的内容

st = resp.read().decode("utf-8")

更简便的方法是使用请求,以某种方式它们自动解码内容

import requests
response = requests.get('http://lifehacker.ru')

print(response.text)

答案 1 :(得分:1)

如果必须使用HTTPSConnection,则需要使用适当的编码对响应进行解码:

content = st.decode('utf-8')

(在Python 3中,resp.read()返回一个字节对象,准备以适当的编码进行解码)

但是,请勿对编码进行硬编码,即UTF-8。使用Content-type字段来计算出正确的编码,或者使用Requests库来代替。