python 2.7输出中文字符串出现错误如何解决?


当前第2页 返回上一页

在某些IDE中,字符串的输出总是出现乱码,甚至错误,其实是由于IDE的结果输出控制台自身不能显示字符串的编码,而不是程序本身的问题。

如在UliPad中运行如下代码:

1

2

s=u"中文"

print s

会提示:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)。这是因为UliPad在英文WindowsXP 上的控制台信息输出窗口是按照ascii编码输出的(英文系统的默认编码是ascii),而上面代码中的字符串是Unicode编码的,所以输出时产生了错误。

将最后一句改为:print s.encode('gb2312')

则能正确输出“中文”两个字。

若最后一句改为:print s.encode('utf8')

则输出:\xe4\xb8\xad\xe6\x96\x87,这是控制台信息输出窗口按照ascii编码输出utf8编码的字符串的结果。

unicode(str,'gb2312')与str.decode('gb2312')是一样的,都是将gb2312编码的str转为unicode编码

使用str.__class__可以查看str的编码形式

原理说了半天,最后来个包治百病的吧:)

1

#!/usr/bin/env python #coding=utf-8 s="中文" if isinstance(s, unicode): #s=u"中文" print s.encode('gb2312') else: #s="中文" print s.decode('utf-8').encode('gb2312')

以上就是python 2.7输出中文字符串出现错误如何解决?的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

Python使用windows api创建窗口示例

什么是Python类属性?类的私有属性是什么?(实例解析)

详谈套接字中so_reuseport和so_reuseaddr的区别

Python如何使用unittest测试接口_Python

Python不支持哪种数据类型

Python回车不能换行而是执行怎么办

Python基于numpy模块创建对称矩阵的方法

安装Python还要安装什么

Python中高阶函数实现剪枝函数的方法

Python中如何合并两个列表

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...