は、周知のイディオムである:Python 3でsys.stdoutエンコーディングを設定するには? Pythonの2のデフォルトの出力エンコーディングを設定
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
これは、UTF-8で出力を符号化するコーデックライタのsys.stdout
オブジェクトをラップします。 sys.stdout.write()
はstr
を期待するが、符号化の結果はbytes
あり、codecs
が元sys.stdout
に符号化されたバイトを書き込みしようとするとエラーが発生するため
しかし、この技術は、Python 3で動作しません。
これをPython 3で行う正しい方法は何ですか?
2to3は、このような質問に役立つツールです。 –
@dan_waterworth:私はそれを前に試してみることは考えていませんでしたが、今は '2to3'を試してみました。 –
新しいコードが機能しない場合は、これをバグとして追加することをお勧めします。 –