UnicodeEncodeError beim Umleiten von stdout [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Festlegen der richtigen Codierung beim Weiterleiten von stdout in Python 10 AntwortenIch 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?