のような単純なファイル
$ 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 など) から呼び出された場合にも発生しますが、上記の方法が最も簡単に再現できる方法でした。
2 つの呼び出しの違いがわかりません。誰でも助けることができますか?