2012-04-20 13 views
1

私は、Pythonスクリプトでさまざまなエンコーディングを処理しようとしています。ユーザーフレンドリーで自動マジックの方法が可能です(utf8のAPIがあります)。これは、クロスプラットフォームのコンソールスクリプトです。sys.stdout.encodingがNoneの場合はどうすればよいですか?

stdoutに印刷する場合は、sys.stdout.encodingを使用しており、コンソールに印刷する際にほぼ常に正しいことをしているようです。ただし、stdoutがの場合の場合はNoneになります。

ので、その場合には、私は、ファイルへの配管午前と仮定してlocale.getpreferredencoding()を使用しますが、:

  • 私はこれをファイルに印刷するための右のエンコーディングであるかわからないが、それは非常にクロスプラットフォームで動作します。
  • プログラムへのパイプ|の場合は、動作しません。そのような場合にはの標準または予期された動作であるが存在しない場合、どのように検出されるかわかりません。

答えて

1

「なし」の場合は、単にデータをutf-8として出力し、文書化してください。他のエンコーディングのユースケースがある場合は、コマンドラインやその他の手段を使用してそのオプションを作成します。

関連する問題