[python]UnicodeEncodeError: 'gbk' codec can't encode character 解决方法

在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‘)  。这样,问题将不复存在。

[python]UnicodeEncodeError: 'gbk' codec can't encode character 解决方法

时间: 2024-10-13 07:53:07

[python]UnicodeEncodeError: 'gbk' codec can't encode character 解决方法的相关文章

'gbk' codec can't encode character解决方法

f = open("a.txt","w") ,在windows下面,新文件的默认编码是gbk,这样的话,python解释器会用gbk编码去解析我们的网络数据流txt,然而txt此时已经是decode过的unicode编码,这样的话就会导致解析不了,出现上述问题. 解决的办法就是,改变目标文件的编码: f = open("a.txt","w",encoding='utf-8') 'gbk' codec can't encode

Python读取中文txt文件错误:UnicodeEncodeError: 'gbk' codec can't encode character

1 with open(file,'r') as f: 2 line=f.readline() 3 i=1 4 while line: 5 line=line.decode('utf-8') 6 print str(i)+": "+line7 line=f.readline() 8 i=i+1 用以上代码读取一个包含中文的txt文件时,在正确地读取并打印了六百多行之后,print str(i)+": "+line这一行报错: UnicodeEncodeError:

python写入文件中遇到 UnicodeEncodeError: ‘gbk’ codec can’t encode character 错误的解决办法

在写入TXT文件时,某些页面总是报UnicodeEncodeError: 'gbk' codec can't encode character错误,网上找了半天也没找到解决办法. 后来终于找到了解决办法,十分简单:在f = open('英语练习.txt','a+',encoding='utf-8') 里加上encoding='utf-8'这个参数就行了. 出错的原因是网页及python的编码都是utf-8,在写进txt时Windows默认转码成gbk,遇到某些gbk不支持的字符就会报错. 在打开

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 XX 解决办法:改变标准输出 添加代码: sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改变标准输出的默认编码 ps: 1.str转bytes叫encode,bytes转str叫decode 2.常用的中文编码名

20170427报错UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa0’ in position

今天写python,将网上数据流编写进文件里时遇到的,网上搜到结果并正确的进行了处理,把原文解决方法拷过来了,嘿嘿 使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position - 这个问题. 网络上有很多类似的文件讲述如何解决这个问题,但是无非就是encode,decode相关的,这是导致该问题出现的真正原因吗?不是的.

UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multibyte sequence

[问题] python中已获取网页: http://blog.csdn.net/hfahe/article/details/5494895 的html源码,其时UTF-8编码的. 提取出其标题部分: <span class="link_title"><a href="/hfahe/article/details/5494895"> 在2008 Beijing Perl 大会的演讲-使用Mason开发高性能的Web站点‎ </a>&

UnicodeEncodeError: &#39;gbk&#39; codec can&#39;t encode character &#39;\xa0&#39; in position 46:illegal multibyte sequence

最近使用python写入文件时,出现了如下的错误: 但是content的内容是unicode编码,不知道怎么和gbk扯上了关系,对content使用encode()和decode(),用gbk,utf-8,gb2312各种编码解码都没有效果: 在网上查找资料,看到一篇文章关于这个的说法:http://blog.csdn.net/xiaoyi_zhang/article/details/51675099 结论是: 1.'gbk' codec can't encode character :说明是将

python爬虫-&#39;gbk&#39; codec can&#39;t encode character &#39;\xa0&#39; in position 134: illegal multibyte sequence

UnicodeEncodeError Traceback (most recent call last) <ipython-input-95-45a7accf2da0> in <module> 1 fout = open('job_desc.txt', 'wt') 2 for info in job_desc: ----> 3 fout.write("{},\"{}\"\n".format(info[0],info[1].replace

【编码】UnicodeEncodeError: &#39;gbk&#39; codec can&#39;t encode character &#39;\xa0&#39; in position XXX

有时候在win中运行代码会遇到题目中的报错问题: "UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position XXX",让人摸不着头脑的是程序开头的编码设置# coding:utf-8 和数据流IO操作时的编码转化都已经在程序中加入加入了.gbk哪里来的呢?其实就是win中新文件的默认编码是gbk. 当我们遇到编码问题的时候,有三个地方需要注意的:文件的编码,IDE的编码,还有数据流IO操作过程中