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

相关推荐
wj3055853787 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
为何创造硅基生物7 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好7 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
星寂樱易李7 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
仰泳之鹅8 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
qingfeng154158 小时前
企业微信机器人开发:如何实现自动化与智能运营?
人工智能·python·机器人·自动化·企业微信
之歆8 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
cen__y9 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手9 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm