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就好了。

相关推荐
m0_686041618 小时前
C++中的适配器模式变体
开发语言·c++·算法
清风~徐~来8 小时前
【视频点播系统】WebSocketpp 介绍及使用
开发语言
葱明撅腚8 小时前
利用Python挖掘城市数据
python·算法·gis·聚类
Serendipity_Carl9 小时前
1637加盟网数据实战(数分可视化)
爬虫·python·pycharm·数据可视化·数据清洗
爱吃大芒果9 小时前
Flutter for OpenHarmony 实战:mango_shop 路由系统的配置与页面跳转逻辑
开发语言·javascript·flutter
流㶡9 小时前
网络爬虫之requests.get() 之爬取网页内容
python·数据爬虫
学***54239 小时前
如何轻松避免网络负载过大
开发语言·网络·php
RANCE_atttackkk9 小时前
Springboot+langchain4j的RAG检索增强生成
java·开发语言·spring boot·后端·spring·ai·ai编程
梵刹古音9 小时前
【C语言】 格式控制符与输入输出函数
c语言·开发语言·嵌入式
yuankoudaodaokou9 小时前
高校科研新利器:思看科技三维扫描仪助力精密研究
人工智能·python·科技