码迷,mamicode.com
首页 > 编程语言 > 详细

Python Solve UnicodeEncodeError 'gbk' / 'ascii' / 'utf8' codec can't encode character '\x??' in position ? 解决有关Python编码的错误

时间:2017-05-26 00:46:41      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:tar   相同   app   targe   代码   exp   参考   html   rmi   

 

在Python中,处理中文字符一直是很令人头痛的问题,一言不合就乱码,而且引起乱码的原因也不尽相同,有时候是python本身默认的编码器设置的不对,有时候是使用的IDE的解码器不对,还有的时候是终端terminal的解码器不对,有时候同一份代码在Python2上正常运行,Python3上就不行了,反正产生乱码的原因很多,这里就列举一些博主遇到过的一些错误及其解决方案:

 

Error 1:

UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\x??‘ in position ?: illegal multibyte sequence

这个是在Win7上用Python3编译的时候遇到的,原因是win7的python3的默认编码不是utf8,我们只需要将默认编码改为utf8就能解决这个问题,参见下面的代码:

 

import sys, io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding=utf8) # Change default encoding to utf8  

 

Error 2:

UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0x?? in position: ordinal not in range(128)

这个是Mac上使用Python2编译的时候遇到的,原因是也是由于python2的默认编码不是utf8,我们只需要将默认编码改为utf8就能解决这个问题,参见下面的代码:

 

import sys
reload(sys)
sys.setdefaultencoding(utf-8)

 

像其他的产生错误的原因,比如IDE显示乱码,或者终端Terminal显示乱码,可以通过Google搜索快速的找出解决方法,这里就不赘述了。

 

参考资料:

http://ajucs.com/2015/11/10/Python-character-encoding-explained.html

Python Solve UnicodeEncodeError 'gbk' / 'ascii' / 'utf8' codec can't encode character '\x??' in position ? 解决有关Python编码的错误

标签:tar   相同   app   targe   代码   exp   参考   html   rmi   

原文地址:http://www.cnblogs.com/grandyang/p/6906431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!