首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复在vsCode中运行的python代码,爬取的数据是中文乱码,而不是直接在python中空闲

如何修复在vsCode中运行的python代码,爬取的数据是中文乱码,而不是直接在python中空闲
EN

Stack Overflow用户
提问于 2019-04-22 17:38:15
回答 1查看 79关注 0票数 0

我写了一段网络爬虫代码,用来抓取有道词典进行翻译。当在vscode中运行时,输出是乱码。当直接在python idle上运行时,输出是正常的.What,我应该怎么办?

我曾尝试将编码模式设置为utf-8、gb2312或gbk,但都不起作用。

代码语言:javascript
复制
from urllib import request
from urllib import parse
import json
content = input("请输入你要查找的字:")

url = " http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"

data = {}
data['i'] = content
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
data = parse.urlencode(data).encode('utf-8')

header = {}
header['Referer'] = 'http://fanyi.youdao.com/?keyfrom=dict2.index'
header['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3650.400 QQBrowser/10.4.3341.400'


req = request.Request(url = url, headers = header)

response = request.urlopen(req, data = data)

result_str = response.read().decode('utf-8')

result_dict = json.loads(result_str)
print(result_dict)


print('翻译的结果是:%s' % result_dict['translateResult'][0][0]['tgt'])

如果我输入‘normal.But’,我希望‘爱’的输出是‘爱’,当我在python idle中运行上面的代码时,它是在vscode中运行的,它是乱码。

EN

回答 1

Stack Overflow用户

发布于 2019-04-24 01:59:30

问题可能是终端的编码与空闲时的编码不同,这导致了不同的结果。

如果您可以升级到Python 3.7,那么就可以修复它,因为在该版本中已经完成了对终端编码使用更合理的默认值的工作。

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

https://stackoverflow.com/questions/55792316

复制
相关文章

相似问题

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