[Python-de] Problem bei Ausgabe von Unicode-Strings

Harald Wenninger usenet at bobok.org
Mo Sep 22 13:43:47 CEST 2014


* Christopher Arndt tat kund und zu wissen:

> In ersten Fall kann Python das Encoding der Konsole feststellen (über
> die TERM Umgebungsvariable), im zweiten Fall nicht, denn der
> Ausgabestream ist ja keine Konsole, sondern ein File. Also verwendet
> Python als Default ASCII, was natürlich nicht klappt, weil 'ä' darin
> nicht vorkommt.

> Lösung: an den Input/Output-Boundaries immer eingehende Daten explizit
> nach Unicode dekodieren und auszugebende Strings explizit kodieren (z.B.
> nach UTF-8 oder den User das Encoding setzen lassen).

Das heißt, print gibt im Zweifelsfall immer einen ASCII-Bytestring aus?
Man muss also "nur" dafür sorgen, dass print immer eine str()-Objekt
bekommt?

print u'ä'.encode('utf-8')

tut :-)

Gruß,
Harald


Mehr Informationen über die Mailingliste python-de