请告诉我如何用西里尔文获得正确的utf-8内容。
我使用下面的代码片段:
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)
结果,我得到了一些类似的内容:
<title>ÐайÑÑÐ°ÐºÐµÑ - ÑовеÑÑ Ð¸
如何获得正确的西里尔文符号?
发布于 2018-06-29 16:35:19
你应该像那样解码内容。
st = resp.read().decode("utf-8")
更简单的方法是使用请求,以某种方式自动解码内容
import requests
response = requests.get('http://lifehacker.ru')
print(response.text)
发布于 2018-06-29 16:46:48
如果您必须使用HTTPSConnection,则需要使用适当的编码对响应进行解码:
content = st.decode('utf-8')
(在Python3中,resp.read()
返回一个字节对象,准备使用适当的编码进行解码)
但是,并不对编码进行硬编码,即UTF8。使用 Content-type
字段确定正确的编码,或者改用 库,这将为您完成此操作。
https://stackoverflow.com/questions/51097460
复制相似问题