ホームページ >バックエンド開発 >Python チュートリアル >Python で出力をパイプするときに UnicodeEncodeError を処理する方法は?
Python でパイプされた出力のエンコーディングを設定する
標準出力をパイプするときに、Python インタープリターでエンコーディングの問題が発生し、UnicodeEncodeError が発生します。この問題は、プログラムが正しいエンコードを指定せずに Unicode 文字を印刷しようとすると発生します。
ベスト プラクティス: パイプ処理時に出力をエンコードする
解決策は、出力を出力前に手動でエンコードすることです。配管。経験則としては、常に内部で Unicode を使用し、入力をデコードして出力をエンコードすることです。例:
print(u"åäö".encode('utf-8'))
パイプ シーケンスのデコード、操作、およびエンコード
実際の例は、ISO-8859-1 と ISO-8859-1 の間で変換する Python プログラムです。 UTF-8、大文字化text:
import sys for line in sys.stdin: # Decode received input line = line.decode('iso8859-1') # Manipulate Unicode internally line = line.upper() # Encode output line = line.encode('utf-8') sys.stdout.write(line)
デフォルトのエンコーディングの設定を避ける
site.py を変更したり、デフォルトのエンコーディングをハードコーディングしたりすることはお勧めできません。これにより、ASCII デフォルトに依存する他のモジュールに悪影響を及ぼす可能性があります。望ましい結果を確実に得るために、パイプ処理時に出力を明示的にエンコードすることが重要です。
以上がPython で出力をパイプするときに UnicodeEncodeError を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。