环境
python版本: 3.5.0
编辑器: vscode,用code runner插件运行
抓取网页:新浪首页
代码
import requests
main_url = 'http://www.sina.com.cn/'
res = requests.get(main_url)
res.encoding = 'utf-8'
print(res.text)
运行结果
用cmd窗口的运行出现同样的错误
问题:
UnicodeEncodeError: 'gbk' codec can't encode character '\xa5' in position 68196: illegal multibyte sequence
信息
网页编码: utf-8
windows默认编码: GBK
python3默认编码:utf-8
vscode文件编码:utf-8
分析
windows cmd默认编码是GBK
GBK无法解析有些utf-8的字符
vscode runner可能不支持打印有些utf-8的字符
查找vscode code runner插件github发现下面链接
https://github.com/formulahendry/vscode-code-runner/issues/25
结论:vscode code runner目前无法支持utf-8
解决
vscode code runner无法支持utf-8,能否让cmd窗口支持utf-8呢
查找到结果
http://www.cnblogs.com/QQParadise/articles/1685177.html
修改cmd窗口的代码页
执行下面命令
chcp 65001
将cmd窗口编码设置位utf-8,运行刚才的代码,打印正常,问题解决
修改完代码页后,会发现cmd窗口设置字体的地方多了几个字体,将字体设置为Consolas,窗口也变漂亮很多
等待vscode code runner下一个版本支持utf-8