Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法

转载 2018年04月15日 02:56:15

    使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 这个问题。 网络上有很多类似的文件讲述如何解决这个问题,但是无非就是encode,decode相关的,这是导致该问题出现的真正原因吗?不是的。 很多时候,我们使用了decode和encode,试遍了各种编码,utf8,utf-8,gbk,gb2312等等,该有的编码都试遍了,可是编译的时候仍然出现: UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position XXX。 崩溃了。


    在windows下面编写python脚本,编码问题很严重。

    将网络数据流写入文件时时,我们会遇到几个编码:

    1: #encoding='XXX' 这里(也就是python文件第一行的内容)的编码是指该python脚本文件本身的编码,无关紧要。只要XXX和文件本身的编码相同就行了。 比如notepad++ "格式"菜单里面里可以设置各种编码,这时需要保证该菜单里设置的编码和encoding XXX相同就行了,不同的话会报错

    2:网络数据流的编码 比如获取网页,那么网络数据流的编码就是网页的编码。需要使用decode解码成unicode编码。

    3:目标文件的编码 要将网络数据流的编码写入到新文件,那么我么需要指定新文件的编码。写文件代码如:

f.write(txt)

,那么txt是一个字符串,它是通过decode解码过的字符串。关键点就要来了:目标文件的编码是导致标题所指问题的罪魁祸首。如果我们打开一个文件:

f = open("out.html","w")

,在windows下面,新文件的默认编码是gbk,这样的话,python解释器会用gbk编码去解析我们的网络数据流txt,然而txt此时已经是decode过的unicode编码,这样的话就会导致解析不了,出现上述问题。 解决的办法就是,改变目标文件的编码:

f = open("out.html","w",encoding='utf-8')  

。这样,问题将不复存在。


转载于:http://www.jb51.net/article/64816.htm


Character类

本课程介绍Character类,学习使用Character创建和操作字符。 本课程对Character类的方法介绍的比较详细。
  • 2017年02月08日 09:49

python “UnicodeEncodeError: 'gbk' codec can't encode character问题解决。

环境 OS:w7 PY:python3.5 IDE:Pycharm moudle:requests问题 报错内容: 在爬取网页内容存储在txt文档时,遇到一个问题,goog...
  • xie_0723
  • xie_0723
  • 2017-03-02 16:58:45
  • 1115

关于Python打印网页内容时报错 UnicodeEncodeError: 'gbk' codec can't encode character……

from urllib import requesturl = 'http://www.ifeng.com' bs = request.urlopen(url).read() content = bs...
  • cceevv
  • cceevv
  • 2015-04-03 18:53:20
  • 5920

Python UnicodeEncodeError: 'gbk' codec can't encode character u'\ufeff' in position 0:

错误情况:UnicodeEncodeError: 'gbk' codec can't encode character u'\ufeff' in position 0:illegal multibyt...
  • J1n5555
  • J1n5555
  • 2015-07-30 16:54:07
  • 4756

python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX

python实现爬虫遇到编码问题: error:UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position X...
  • u012680593
  • u012680593
  • 2016-12-22 14:59:53
  • 10340

Python:UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 12305,以及中文乱码的解决方案

UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 12305,以及中文乱码的解决方案 刚刚学习了Py...
  • HW140701
  • HW140701
  • 2016-07-27 14:01:51
  • 4902

解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX

步步为营,解决 UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 8530: illegal mult...
  • jim7424994
  • jim7424994
  • 2014-03-31 17:18:55
  • 45795

UnicodeEncodeError: 'gbk' codec can't encode character '\u200b' in position 0: illegal multibyte seq

python 在写入文件的时候,会出现这个问题:主要是我们在进行写入的时候没有进行编码设置,因为在windows下,新文件的默认编码是gbk编码,所以我们在写入文件的时候需要设置一个编码格式,如下: ...
  • snake_son
  • snake_son
  • 2017-06-22 23:12:51
  • 822

编码问题:UnicodeEncodeError: 'gbk' codec can't encode character u'\xa0' in position 148:

在写一个用BeautifulSoup抓取twitter网页时遇到的问题 # UnicodeEncodeError: 'gbk' codec can't encode character u'\xa0...
  • Xiaoyi_Zhang
  • Xiaoyi_Zhang
  • 2016-06-14 22:15:16
  • 10899

UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 问题解决办法之一

使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character '...
  • youb11
  • youb11
  • 2016-01-04 11:02:37
  • 1268
收藏助手
不良信息举报
您举报文章:Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
举报原因:
原因补充:

(最多只允许输入30个字)