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),但我不明白你的解決方案爲什麼可行,但這不是。 –