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