爬虫requests 返回后 用print打印发挥结果遇到 "UnicodeEncodeError:'gbk' codec can't encode character '\xa9'"...

遇到问题描述

python读取mysql 之后,print提示此错误,,如下第二种解决方案解决的
import

第一个错

  • 【UnicodeEncodeError:'gbk' codec can't encode character '\xa9' in position 0:illegal multibyte sequence】

  • 这个错误,网上给出的解释是:

  • 某些软件如notepad,在保存一个以UTF-8编码的文件时, 会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。

  • 因此我们在读取时需要自己去掉这些字符,python中的codecs module定义了这个常量:

  • 复制代码

    <pre style="box-sizing: border-box; outline: 0px; margin: 0px 0px 24px; padding: 8px; font-weight: normal; position: relative; white-space: pre-wrap; overflow-wrap: break-word; overflow-x: auto; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; color: rgb(0, 0, 0);">1 import io
    2 import sys
    3 #这里判断下,把三个不可见的字符去除掉
    4 if data[:3] == codecs.BOM_UTF8:
    5 data = data[3:]
    6 print(data.decode('utf-8'))</pre>

    复制代码

第二个错

  • 【UnicodeEncodeError:'gbk' codec can't encode character '\xa0' in position 0:illegal multibyte sequence】
  • 看完贴子【https://blog.csdn.net/jim7424994/article/details/22675759#
  • 后,才知道,原来是python的print()方法的问题。
  • 在python中, print()方法在Win7的默认编码是gbk,它在打印时,并不是所有的字符都支持的。
  • 而且这个问题一般也就是在cmd中才会有。 在cmd中是改变标准输出编码:

1 import os,sys,io
2 sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')

使用上面这两句即可解决在CMD模式下运行出错的状态

编码名称用途
utf8所有语言
gbk简体中文
gb2312简体中文
gb18030简体中文
big5繁体中文
big5hkscs繁体中文
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值