Python: file: encode: ‘gbk‘ codec can‘t encode character ‘\xe5‘ in position

错误

response = requests.get(url, timeout=5) # 请求一个网页

with open('response.txt', 'w') as file: # 打开一个文件

file.write(response.text) # 向文件写入response

提示错:

UnicodeEncodeError: 'gbk' codec can't encode character '\xe5' in position 520: illegal multibyte sequence

原因

这个是因为文件打开使用的编码方式是gbk,是open默认的,在response.text里有gbkencode不了的编码。导致错误。如果换成utf-8,倒是可以输出到文件:

with open('response.txt', 'w', encoding='utf-8') as file:

修改这一句,可以绕过这个错误,但是,打开网页出现乱码。

本地的默认设置是gbk。

cpp 复制代码
>>> import locale
>>> print(locale.getdefaultlocale())
('zh_CN', 'cp936')

Doc/library/codecs.rst

cpp 复制代码
| gbk             | 936, cp936, ms936              | Unified Chinese                |

从网上搜了一下,response自带编码方式,可以查阅。

cpp 复制代码
>>> print(response.encoding)
ISO-8859-1

最后改成ISO-8859-1就好了。

相关推荐
闲看庭前梦落花2 分钟前
Tensorflow实现手写数字识别
人工智能·python·tensorflow
FlechazoCLF1 小时前
QT中使用OpenCV保姆级教程
开发语言·qt·opencv
bluebonnet271 小时前
【python】转移本地安装的python包
java·python·eureka
lifallen1 小时前
AbstractExecutorService:Java并发核心模板解析
java·开发语言·数据结构·算法
amazinging1 小时前
北京-4年功能测试2年空窗-报培训班学测开-今天来聊聊我的痛苦
python·功能测试·学习·面试
超级晒盐人1 小时前
vue 开发总结:从安装到第一个交互页面-与数据库API
经验分享·python·语言模型·学习方法·微信公众平台
weixin_437499921 小时前
【PHP 构造函数与析构函数:从基础到高级的完整指南】
开发语言·php
Mu.3872 小时前
加密与安全
java·开发语言
_extraordinary_2 小时前
Java 字符串常量池 +反射,枚举和lambda表达式
android·java·开发语言
AI 嗯啦2 小时前
机器学习 —— 决策树
python·机器学习