易乐网

您现在的位置是:首页 > python > 正文

python

使用Python写入文件时报错:UnicodeEncodeError: 'gbk' codec can't encode character解决方法

sone2020-09-11python3563
使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError:'gbk'codeccan'tencode

使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 问题。出现这个问题是因为 在windows系统下,新 文件的默认编码是gbk,这样的话,python解释器会用gbk编码去解析我们的网络数据流txt,然而txt此时已经是decode过的unicode编码,这样的话就会导致解析不了,如下图:

捕获3.JPG

    在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'这句,编码报错问题将不复存在了。


发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~