一个简单的文件,如
$ 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)调用脚本时也会出现问题,但上面是我发现复制它的最简单方法。
我不明白这两个电话之间有什么区别。任何人都可以帮忙吗?