一杯茶,一首歌,一个bug改一天。
今天在学习python多线程时,遇到的了乱码的情况,让我们先看一看是什么情况的吧
在这样一段代码中:
response = requests.get(url_queue.get(), headers=headers)
info = response.text
print(info)
报出如下错误:
UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f601' in position 36140: illegal multibyte sequence
百度了很久,发现都是针对读文件的方式解决的,不过通过大量的帖子,找到了一种解决方式:对我们的输出进行转码,具体代码编写如下:
response = requests.get(url_queue.get(), headers=headers)info = response.textprint(info.encode('UTF-8').decode('UTF-8'))
再次进行打印,发现还是出错,报错代码如下:
UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f92d' in position 18765: illegal multibyte sequence
当然,这次的报错与刚刚是一样的,不过别着急,等我慢慢解释,
在大量百度后,可以的得出一个结论,就是:我们要爬取的页面出现了奇奇怪怪的字符,比如,😊等其他表情。
此时,我打开了要爬取的页面,果然看到了有类似的奇怪字符,
不过,一个优秀的程序员是不会轻易放弃的,继续百度,
在谋篇博客中解释到cmd命令窗口的编码与IDLE的编码有些出入,这时我就联想到是不是我的pycharm编码出现了问题,
紧接着我就打开了pycharm的编码格式,果然看到了如下结果:
pycharm的编码格式出现了问题,随后将其修改为UTF-8
再一次运行就可以了: