首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用西里尔字母下载utf-8编码内容

如何用西里尔字母下载utf-8编码内容
EN

Stack Overflow用户
提问于 2018-06-29 16:31:07
回答 2查看 138关注 0票数 0

请告诉我如何用西里尔文获得正确的utf-8内容。

我使用下面的代码片段:

代码语言:javascript
运行
复制
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)

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

代码语言:javascript
运行
复制
<title>ÐайÑÑÐ°ÐºÐµÑ - ÑовеÑÑ Ð¸

如何获得正确的西里尔文符号?

EN

回答 2

Stack Overflow用户

发布于 2018-06-29 16:35:19

你应该像那样解码内容。

代码语言:javascript
运行
复制
st = resp.read().decode("utf-8")

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

代码语言:javascript
运行
复制
import requests
response = requests.get('http://lifehacker.ru')

print(response.text)
票数 1
EN

Stack Overflow用户

发布于 2018-06-29 16:46:48

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

代码语言:javascript
运行
复制
content = st.decode('utf-8')

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

但是,并不对编码进行硬编码,即UTF8。使用 Content-type 字段确定正确的编码,或者改用 库,这将为您完成此操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51097460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档