2

私はPythonスクリプトでさまざまなエンコーディングをよりユーザーフレンドリーで自動魔法の方法で処理しようとしています(utf8用のAPIがあります)。これは、クロスプラットフォームのコンソールスクリプトです。

stdout私が使用する印刷sys.stdout.encodingには、コンソールに印刷するときにほとんどの場合正しいことを行うようです。ただし、stdoutがパイプされると、になりNoneます。

したがって、その場合、私はファイルにパイプして使用していると仮定しますlocale.getpreferredencoding()が、次のようになります。

  • これがファイルに印刷するための正しいエンコーディングであるかどうかはわかりませんが、クロスプラットフォームで機能します。
  • これは、プログラムにパイプする 場合は機能しません|。その場合のエンコーディングの標準または予想される動作がある場合でも、これが当てはまることを検出する方法がわかりません。
4

1 に答える 1

1

Noneの場合は、データをとして出力しutf-8、文書化します。他のエンコーディングのユースケースがある場合は、コマンドラインまたは他の方法でそのオプションを選択してください。

于 2012-04-20T17:06:54.800 に答える