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

问题:

使用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");

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏老马说编程

(65) 线程的基本概念 / 计算机程序的思维逻辑

在之前的章节中,我们都是假设程序中只有一条执行流,程序从main方法的第一条语句逐条执行直到结束。从本节开始,我们讨论并发,在程序中创建线程来启动多条执行流,并...

2127
来自专栏angularejs学习篇

angularjs学习第六天笔记(指令简介学习)

  您好,由于周末有事情,没哟学习angularjs,几天晚上开始继续学习angularjs,坚持加油每一天。谢谢

992
来自专栏电光石火

获取URL地址中的GET参数

/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL...

1949
来自专栏菩提树下的杨过

java 中的异步回调

异步回调,本来在c#中是一件极为简单和优雅的事情,想不到在java的世界里,却如此烦琐,先看下类图: ? 先定义了一个CallBackTask,做为外层的面子工...

2417
来自专栏技巅

Thrift之代码生成器Compiler原理及源码详细解析3

2096
来自专栏angularejs学习篇

angularjs学习第六天笔记(指令简介学习)

  您好,由于周末有事情,没哟学习angularjs,几天晚上开始继续学习angularjs,坚持加油每一天。谢谢

841
来自专栏博客园

Redis命令与配置

    slaveof  127.0.0.1 6379(设置Mater的Host以及Port)

1454
来自专栏Laoqi's Linux运维专列

for 循环,while循环,break,continue,exit

3458
来自专栏python 实践经验

python 语法基础之字符集编码

Python初学者编码实践中经常遇到encode error,decode error。

3695
来自专栏java 成神之路

JVM 类加载机制深入浅出

25611

扫码关注云+社区