$ cat x.py
x = u'Gen\xe8ve'
print x
一個簡單的文件在運行時都會給我:
$ python x.py
Genève
然而,當作爲「命令替換」運行將給:
$ echo $(python x.py)
...
UnicodeEncodeError: 'ascii' codec...
我試過用不同的終端模擬器(xterm,gnome-term)和ttyS上的控制檯。用bash和sh。用python2.4和2.7。 我已經嘗試在運行python之前將LC_ALL或LANG設置爲某些utf-8語言環境。 我檢查了sys.getdefaultencoding()。 沒有什麼幫助。
從另一個進程(如java)調用腳本時也會出現問題,但上面是我發現複製它的最簡單的方法。
我不明白這兩個調用之間有什麼區別。 任何人都可以幫忙嗎?
好的。我絕對可以重現這一點。 – 2012-08-07 11:30:38