请告诉我西里尔字母正确获取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)
如何获取正确的西里尔字母符号?
答案 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库来代替。