4

当我使用不同的管道运行相同的代码时,为什么输出不同?

% python2.7  -c 'import sys; print sys.stdout.encoding'
UTF-8
% python2.7  -c 'import sys; print sys.stdout.encoding' | cat
None
4

1 回答 1

7

因为当您使用cat(或任何管道)时,您会从终端取消绑定进程。Python 从终端设置中获取有关编码的信息。

您可以使用 enironment 变量强制编码:

export PYTHONIOENCODING=utf-8
于 2012-07-26T09:29:05.300 回答