質問する
143 次
1 に答える
1
例外が出力され、Unicode メッセージが与えられると、Python は によって返されたエンコーディングを使用してそれをエンコードしようとしsys.getdefaultencoding()
ます。失敗すると、エンコーディング エラーが抑制され、奇妙な出力が得られます。
印刷の場合、Unicode 文字列はsys.stdout.encoding
. sys.stderr.encoding
ええ、 excepthookを使用した方が良いでしょうsys.getdefaultencoding()
。
以下が機能することに注意してください。
raise LookupError(u"symbol: \u0411".encode(your_encoding))
sitecustomize
またはusercustomize
を呼び出して、デフォルトのエンコーディングを変更することもできますsys.setdefaultencoding(your_encoding)
。デフォルトsys.stderr.encoding
のエンコーディングが (および他の標準ストリームのエンコーディングと) 等しくなるように、システムを構成する必要があります。
また、この問題は Python 3 ではもう存在しません。
于 2015-10-28T22:49:09.073 に答える