$ 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