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は、端末設定からエンコーディングに関する情報を取得します。

環境変数を使用してエンコードを強制できます。

export PYTHONIOENCODING=utf-8
于 2012-07-26T09:29:05.300 に答える