在Python中使用管道标准输出时设置正确的编码
当Python程序输出管道时,Python解释器会对编码感到困惑,并将其设置为None。这意味着这样的程序:
# -*- coding: utf-8 -*-print u"åäö"
在正常运行时工作正常,但在以下情况下失败:
UnicodeEncodeError:‘ASCII’编解码器不能编码0位置的字符u‘\xA0:序号不在范围内(128)
在管道序列中使用时。
什么是最好的办法,使这个工作时,管道?我可以告诉它使用任何编码shell/文件系统/任何正在使用的东西吗?
到目前为止,我看到的建议是直接修改站点.py,或者使用这个黑客对默认编码进行硬编码:
# -*- coding: utf-8 -*-import sys reload(sys)sys.setdefaultencoding('utf-8')print u"åäö"
有更好的方法使管道工作吗?
繁花不似锦
阿晨1998
有只小跳蛙
相关分类