解决 Python3 下 print 时出现 UnicodeEncodeError 的问题

今天试着使用 Selenium 做爬虫时 print 爬取到的信息时,程序报错,信息如下:

Traceback (most recent call last):
  File "spider.py", line 19, in <module>
    print(girlsList)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

在解释器里执行sys.stdout时,返回的结果是

<_io.TextIOWrapper name='<stdout>' mode='w' encoding='ANSI_X3.4-1968'>

这里可以发现encoding=”ANSI_X3.4-1968“,而我们的需要的编码是utf-8,所以需要在程序的头部加入如下代码:

import sys, io

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="urf-8")

这样就可以正常的做输出操作了

参考信息:解决Python3下打印utf-8字符串出现UnicodeEncodeError的问题

    原文作者:Rakyui
    原文地址: https://segmentfault.com/a/1190000013323883
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞