UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)


在linux centos系统中使用python2.7.2对一个字符串解码然后输出,代码如下: 

s = "哈哈哈"

print s.decode('utf-8')

 

结果报了如下的错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

然后在代码前使用了:

import sys
reload(sys)

sys.setdefaultencoding('utf-8') 

这个编码设置,运行依然报如上错误。

从输出看,解码是没问题的,反而是编码出了问题,应该是当前环境下print时候编码出的问题

于是,将代码改为:

print (s.decode('utf-8')).encode('gb2312')

结果没问题了。

所以在使用 print 的时候,要注意环境所需的编码。 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM