python中关于'gbk' codec can't encode character u'\xxx'的问题

本文解决在Windows cmd中使用Python WebDriver获取网页数据时遇到的UnicodeEncodeError问题,提供两种解决方案:一是忽略无法编码的字符;二是转换为GB18030编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

使用webdriver中获取网页数据流的时候,然后print driver.find_element_by_id('').text,出现如下错误

UnicodeEncodeError: 'gbk' codec can't encode character u'\ue60a' in position 20: illegal multibyte sequence

 

原因:

对于此Unicode字符,需要print出来的话,由于本地系统是Windows中的cmd(linux无此情况出现,请放心食用),默认codepage是CP936,即GBK的编码,所以python解释器需要先将上述的Unicode字符编码为GBK,然后再在cmd中显示出来。

但是由于包含一些GBK中无法显示的字符,导致此时提示“’gbk’ codec can’t encode”的错误的。

 

方法1:

在对unicode字符编码时,添加ignore参数,忽略无法无法编码的字符,这样就可以正常编码为GBK了。

print str.encode("GBK", 'ignore');

 

方法2:

将其转换为GBK编码的超集GB18030 (即,GBK是GB18030的子集):

print str.encode("GB18030");

 

转载于:https://my.oschina.net/hjchhx/blog/1535480

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值