使用Python写入文件时报错:UnicodeEncodeError: 'gbk' codec can't encode character解决方法
使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError:'gbk'codeccan'tencode
使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 问题。出现这个问题是因为 在windows系统下,新 文件的默认编码是gbk,这样的话,python解释器会用gbk编码去解析我们的网络数据流txt,然而txt此时已经是decode过的unicode编码,这样的话就会导致解析不了,如下图:
在windows下面编写python脚本,编码问题很严重。
将网络数据流写入文件时时,我们会遇到几个编码:
1: encoding='***' 这里(也就是python文件第一行的内容)的编码是指该python脚本文件本身的编码,无关紧要。只要***和文件本身的编码相同就行了。不同的话会报错
2:网络数据流的编码 比如获取网页,那么网络数据流的编码就是网页的编码。
3:要将网络数据流的编码写入到新文件,那么我么需要指定新文件的编码。代码如:
import requests a = requests.get('https://elw.cc/post/31.html') cs = a.text with open('ceshi.txt','a',encoding='utf-8') as aa: aa.write(cs)
open('ceshi.txt','a',encoding='utf-8')这句话意思就是:打开ceshi.txt文件,并指定它的编码为UTF-8,只需要在打开文件时,加上encoding='utf-8'这句,编码报错问题将不复存在了。
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~