UnicodeEncodeError beim Umleiten von stdout [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Festlegen der richtigen Codierung beim Weiterleiten von stdout in Python 10 Antworten

Ich habe ein Problem mit Unicode in Python. Ich kann die Ausgabe gut in einem normalen Terminal drucken, aber wenn ich umleitenstdout an anderer Stelle (oder erfassen Sie es mit dersubprocess Modul) bekomme ich eineUnicodeEncodeError:

$ cat example.py 
print u'Example: \u00F1'
$ python example.py 
Example: ñ
$ python example.py > /dev/null
Traceback (most recent call last):
  File "example.py", line 1, in <module>
    print u'Example: \u00F1'
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 9: ordinal not in range(128)

Warum ist das? Wie kann ich es reparieren?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage