私はPythonスクリプトでさまざまなエンコーディングをよりユーザーフレンドリーで自動魔法の方法で処理しようとしています(utf8用のAPIがあります)。これは、クロスプラットフォームのコンソールスクリプトです。
stdout
私が使用する印刷sys.stdout.encoding
には、コンソールに印刷するときにほとんどの場合正しいことを行うようです。ただし、stdoutがパイプされると、になりNone
ます。
したがって、その場合、私はファイルにパイプして使用していると仮定しますlocale.getpreferredencoding()
が、次のようになります。
- これがファイルに印刷するための正しいエンコーディングであるかどうかはわかりませんが、クロスプラットフォームで機能します。
- これは、プログラムにパイプする 場合は機能しません
|
。その場合のエンコーディングの標準または予想される動作がある場合でも、これが当てはまることを検出する方法がわかりません。