我正在运行一个 python 工具并尝试将其输出保存到文件中。如果我不将输出保存到文件中,该工具将运行得很好。但是当我尝试将输出保存到文件时,它会抛出以下错误并中断程序:
File "./androdiff.py", line 118, in <module>
main(options, arguments)
File "./androdiff.py", line 94, in main
ddm.show()
File "./elsim/elsim/elsim_dalvik.py", line 772, in show
self.eld.show()
File "./elsim/elsim/elsim.py", line 435, in show
i.show()
File "./elsim/elsim/elsim_dalvik.py", line 688, in show
print hex(self.bb.bb.start + self.offset), self.pos_instruction, self.ins.get_name(), self.ins.show_buff( self.bb.bb.start + self.offset )
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0111' in position 35: ordinal not in range(128)
我试过了command |less
, command > output
and command | tee output
,他们都会抛出这样的错误。
请帮助解决问题。
Thanks!
Set PYTHONIOENCODING
如果无法自动确定标准输出字符编码,例如,当输出重定向到文件时,请显式设置环境变量:
$ PYTHONIOENCODING=utf-8 python app.py > file
如果输出可能会发送到终端,请勿在脚本中对字符编码进行硬编码;相反,打印 Unicode 字符串并让用户配置他们的环境。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)