py3输出乱码问题总结

用requests爬取一个utf-8编码的网页,发现如果用交互命令行,输出没有任何问题,但是用notepad++输出却出现 gbk' codec can't encode character '\xbb' in position 12305: illegal multibyte sequence,这种问题,找了好久,终于在点击打开链接这里找到了答案,点击打开链接简单说就是,print()函数自身也就输出的限制,这就解释了为什么在交互命令行里没有出错的原因。因此,在notepad++里面输出的话,需要重新定义编码,因为一个网页里虽然是用utf-8编码,但是还是有几个特殊字符是其他格式,可以如下解决:
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码,什么都不要改,就这样加入。

输出的结果是英文字符正常,但是中文字符变为其他的类似于繁体字的乱码,这里可以将上面的:

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')

改为

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
这样终于解决了!笔记一下,以备以后查看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值