文档章节

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

NateHuang
 NateHuang
发布于 2017/09/12 00:03
字数 233
阅读 83
收藏 0

问题:

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

 

© 著作权归作者所有

共有 人打赏支持
NateHuang
粉丝 19
博文 63
码字总数 30772
作品 0
深圳
后端工程师
python 的 string 和 PyQt 的 QString 的区别

以下在 Python2.6和PyQt4.4.4 for Python2,6环境下讨论: Python中有两种有关字符的类型:Python string object和Python Unicode object。主要使用Python string object进行数据输入输出。 ...

不必在乎朕是谁
2013/08/26
0
0
也谈 Python 的中文编码处理

最近业务中需要用 Python 写一些脚本。尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息。 很快,我就遇到了异常: Python代码 UnicodeEncodeErr...

我的去哈哈
2014/02/12
0
0
Python Unicode与中文处理(转)

Python Unicode与中文处理 python中的unicode是让人很困惑、比较难以理解的问题,本文力求彻底解决这些问题; 1.unicode、gbk、gb2312、utf-8的关系; http://www.pythonclub.org/python-bas...

coldlemon
2014/01/04
0
0
Python 字符串与unicode对象 关于与区别 encode、decode

作者:shede333 主页:http://my.oschina.net/shede333 && http://blog.sina.com.cn/u/1509658847 版权声明:原创文章,版权声明:自由转载-非商用-非衍生-保持署名 [Creative Commons BY-N...

shede333
2014/04/07
0
1
详解 python 中文编码与处理

注意:本文只是针对 python 2,在 python 3 中,编码方式与处理技巧有些许变化,具体请参考: Python 2 与 Python 3 的差异对比: http://my.oschina.net/leejun2005/blog/173553 一、使用中...

大数据之路
2012/08/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL SQL 常见用法

某字段重复记录 select a.fieldA from tableA a group by a.fieldA having count(a.fieldA)>1;==select * from (select a.fieldA, count(1) as faCount from tableA a group......

园领T
59分钟前
1
0
如何使用 iptables 和 firewalld 工具来管理 Linux 防火墙规则

以下是如何使用 iptables 和 firewalld 工具来管理 Linux 防火墙规则。 防火墙 防火墙是一组规则。当数据包进出受保护的网络区域时,进出内容(特别是关于其来源、目标和使用的协议等信息)会...

linuxprobe16
今天
1
0
发生系统错误 5 拒绝访问

1、使用命令net start *开启一个服务的时候,出现发生系统错误5,拒绝访问。 解决:切换到管理员模式执行此命令即可。

fang_faye
今天
1
0
devops 成长路线

https://36kr.com/p/5157249.html

swingcoder
今天
1
0
Java内存区域的划分和异常

行时数据区域 JVM在运行Java程序时候会将内存划分为若干个不同的数据区域。 程序计数器 线程私有。可看作是当前线程所执行的字节码的行号指示器,字节码解释器的工作是通过改变这个计数值来读...

架构师springboot
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部