Beim Weiterleiten der Ausgabe eines Python-Programms verwirrt der Python-Interpreter die Codierung und setzt sie auf „None“. Das bedeutet ein Programm wie dieses:
# -*- Codierung: utf-8 -*- print u"åäö"
funktioniert gut, wenn es normal läuft, aber schlägt fehl mit:
UnicodeEncodeError: "ascii" codec can"t encode character u"xa0" in position 0: ordinal not in range(128)
wenn es in einer Pipe-Sequenz verwendet wird.
Was ist der beste Weg, dies beim Pipen zum Laufen zu bringen?Kann ich ihm einfach sagen, dass es die Codierung der Shell/des Dateisystems/was auch immer verwenden soll
Die Vorschläge, die ich bisher gesehen habe, sind, Ihre site.py direkt zu ändern oder die Standardcodierung mit diesem Hack fest zu codieren:
# -*- Codierung: utf -8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") print u"åäö"
Gibt es einen besseren Weg, Pipings zu machen arbeiten?