另一种解决方式:编码问题:UnicodeEncodeError: ‘gbk‘ codec can‘t encode character u‘\xa0‘ in position 148:

0、描述

今天在写一个爬虫的时候,遇到了一个问题,困扰了好久。而且我用同样的编码错误网站搜索,发现解决方式都是一样的,重点是并没有解决我的问题,于是我自己摸索了很久,然后请教了大神才解决了这么一个问题。
记录一哈!!!也算是为这样的一个报错提供一个新的解决方式和思路吧!欢迎浏览留言交流探讨!

就是在文件写入的是,一直提示编码不对!

1、环境

windows 10 专业版
python 3.8
requests == 2.23.0
BeautifulSoup4 == 4.9.0

2、错误

UnicodeEncodeError: 'gbk' codec can't encode character u'\xa0' in position 148:

3、其他人的方法(未解决我的问题)

在这里插入图片描述
这一个是其他人的方法:并没有解决我的的问题!但是给我了我一个思路,就是

  • (1)出现UnicodeEncodeError –> 说明是Unicode编码时候的问题;
  • (2) ‘gbk’ codec can’t encode character –> 说明是将Unicode字符编码为GBK时候出现的问题;
    此时,往往最大的可能就是,本身Unicode类型的字符中,包含了一些无法转换为GBK编码的一些字符。

这两个点是说的非常正确的
但是解决方式,是替换不能解码的字符为空字符!
这样的操作,我做了之后,就是对我的源数据有了很大的影响,以至于,源数据,没有办法正常解码了!所以,替换这一个方式是不可取的!

4、解决方案

上面已经说了,分析是对,所以就是要改变编码方式!系统下面会有默认的编码方式。所以打开下面的目录file ---> setting ---> Editor---> File Encodings然后在里面检查下面截图这两个位置的编码方式是什么!

  • 白色图片展示的是我已经修改之后的了!都修改成了utf-8
    在这里插入图片描述
  • 黑色图片是图片原始的未修改的,默认系统的gbk
    在这里插入图片描述

就是需要把默认的gbk 修改成为utf-8!!

最后在把数据写入文件的时候,指定编码方式utf-8

with open("test.txt",'wb',encoding='utf-8') as f:
    f.write(response.content)

这样的话就解决了问题。而且在pycharm里面直接打开文件,也是直接显示的是中文,不会出现◆◆◆◆●▼▲◆◆这种乱码的。

5、如果解决不了

如果用了我的方法解决不了问题!可以借鉴上面我的截图的方式!如果还解决不了。。。那就自己加油吧!
https://blog.csdn.net/Thoms_/article/details/82022969

6、结语:

个人记录,新手入门,多多学习,欢迎大家交流探讨!
个人网站: http://106.54.78.238/
song_of _sea的个人网站 http://106.54.78.238/

猜你喜欢

转载自blog.csdn.net/weixin_44824717/article/details/108083802