UnicodeEncodeError: ‘gbk‘ codec can‘t encode character 的解决方法

前几天遇见一道关于requests库请求后,出现编码错误的问题,如下图所示。
图片

同样代码,别人都能运行,但是他这个就不行,真是头大。

一、思路

其实问题的关键点就是在于编码和解码的问题,首先要确定网站的编码方式,剩下的就是自己电脑中的Pycharm编码设置的问题了。一般来说,苹果机默认就是utf-8编码,所以苹果机中的编码问题一般比较少,但是其他机型就不好说了,一般默认的编码是gbk,所以需要进行转编码。这也是为什么在苹果机下使用open()函数,不指定编码格式,抓取下来的网页或者数据是不会乱码的,而使用其他机型抓取的情况下,不指定编码,就会乱码的原因所在了。

二、解决方法

目标网站的编码是utf-8,即 ,我尝试给了他解决方案,使用下方代码进行输出,以为可以一步到位,不过事与愿违。

response.text.encode('utf-8').decode('utf-8')

图片

我看了下代码,是没毛病的,而且网页的编码就是utf-8,编码没问题,那么只能是Pycharm中的编码设置的问题了。
在setting里边指定编码为utf-8,就可以解决问题了,如下图所示。
图片
这里设置好之后,然后运行代码,就可以正常跑了,不会出现报错了。

【拓展知识】

如果你下次有遇到类似这种’\u7535\u5546’编码报错问题,确定在Pycharm里边确定为utf-8编码的情况下,可以使用下面的解决方式,屡试不爽:

text = '\u7535\u5546'
print(text.encode('utf-8').decode('utf-8'))

好了,今天的文章就分享到这里了,希望对大家的学习有帮助。

三、总结

针对编码问题,主要从两个方面进行出发,其一是网页编码,其二是Pycharm编码,顺利解决这个小bug。小编相信小伙伴们在实际敲代码的过程中,肯定还有遇到其他的编码bug,也欢迎大家在评论区谏言.


技术交流

欢迎转载、收藏、有所收获点赞支持一下!

在这里插入图片描述

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

长按关注

  • 29
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
引用\[1\]、\[2\]和\[3\]提供了关于UnicodeEncodeError报错的解决方法。这个错误通常是由于编码问题引起的,即在使用gbk编码时,遇到了无法编码的字符。解决这个问题的方法是将文件编码改为UTF-8。这可以通过在PyCharm中修改文件编码来实现。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [已解决UnicodeEncodeError: ‘gbkcodec can‘t encode character ‘ŗ‘ in position 1: illegal ...](https://blog.csdn.net/yuan2019035055/article/details/126582320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [UnicodeEncodeError: ‘gbkcodec can‘t encode character ‘\xa0‘ in position 21: illegal multibyte...](https://blog.csdn.net/qq_59544594/article/details/127222466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [解决python中的UnicodeEncodeError: ‘gbkcodec can‘t encode character ‘\u26ab‘问题](https://blog.csdn.net/m0_56636447/article/details/127637293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值