0
我有一个Python脚本调用a.py:Python脚本打印unicode的,在外壳使用``导致错误
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
print u''
在这两个bash和tcsh中:
$ a.py
Ô£øÔ£øÔ£øÔ£ø
$ echo `a.py`
Traceback (most recent call last):
File "a.py", line 3, in <module>
print u'Ô£øÔ£øÔ£øÔ£ø'
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
错误是来自Python,而不是shell。如何在反引号下运行脚本会影响脚本本身?请注意,如果在脚本的开头将解释器切换到Python 3,这不是问题。
哇。我从来不会想到这一点。所以我试着把它添加到a.py中:import os os.putenv('PYTHONIOENCODING','utf-8') 但这不起作用。可能我对bash缺乏经验(我主要使用tcsh),但我不明白你的解决方案为什么可行,但这不是。 –