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

相关推荐
g***B73817 分钟前
Kotlin协程在Android中的使用
android·开发语言·kotlin
火白学安全22 分钟前
《Python红队攻防零基础脚本编写:进阶篇(一)》
开发语言·python·安全·web安全·网络安全·系统安全
爱码小白24 分钟前
PyQt5 QTimer总结
开发语言·qt
A***279530 分钟前
Kotlin反射机制
android·开发语言·kotlin
FreeCode32 分钟前
LangGraph1.0智能体开发:运行时系统
python·langchain·agent
E***q53934 分钟前
C++内存对齐优化
开发语言·c++
青瓷程序设计44 分钟前
植物识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
q***d1731 小时前
Kotlin在后台服务中的框架
android·开发语言·kotlin
周杰伦fans1 小时前
C# 中的 `Hashtable`
开发语言·c#
习习.y1 小时前
关于python中的面向对象
开发语言·python