Seite 1 von 1
Anzeigen von Unicode in Windows
Verfasst: Mittwoch 26. Januar 2011, 15:44
von Gerenuk
Ich nutze Python3 mit Eclipse auf Windows und obwohl ich alles mögliche auf UTF8 umgestellt habe, kommen Unicodefehler wenn ich komplizierte Zeichen in der Eclipse Console darstelle (die intern natürlich Unicode sind). Deswegen habe ich s.encode("cp1252","replace") an allen Ausgabestellen versucht. Nur schreibt der jetzt immer b'...' drumrum.
Was wäre des beste Weg auf Windows-Consolen sicherzustellen, dass er nicht bei Anzeigeproblemen abbricht?
Und wo würde ich das encode unterbringen? Und wie bekomme ich das B in b'...' weg?
Re: Anzeigen von Unicode in Windows
Verfasst: Mittwoch 26. Januar 2011, 20:05
von Darii
Ja, da machst du wohl irgendwas falsch. Ohne Beispiel kann ich dir aber auch nicht helfen.
Re: Anzeigen von Unicode in Windows
Verfasst: Mittwoch 26. Januar 2011, 20:21
von cofi
b'..' ist die `repr` Form eines bytes Objekts, also das Ergebnis von `encode`.
Meine Kristallkugel raet zu `print`
Re: Anzeigen von Unicode in Windows
Verfasst: Mittwoch 26. Januar 2011, 23:36
von Gerenuk
Zum Beispiel passiert folgendes in der PyDev/Eclipse Console:
>>> print("a".encode("cp1252"))
b'a'
Ein str(...) drumrum ändert auch nicht.
@Darii:
Sehr schlaue Feststellung, dass ich wohl was falsch mache. Und außerdem ein denkbar taktvoller Einstieg.
Re: Anzeigen von Unicode in Windows
Verfasst: Mittwoch 26. Januar 2011, 23:44
von lunar
"sys.stdout.buffer.write('a'.encode( 'cp1252'))"
Re: Anzeigen von Unicode in Windows
Verfasst: Mittwoch 26. Januar 2011, 23:53
von Gerenuk
Sehr seltsam. Da kommt jetzt:
>>> sys.stdout.buffer.write('a'.encode( 'cp1252'))
a1
Re: Anzeigen von Unicode in Windows
Verfasst: Donnerstag 27. Januar 2011, 02:05
von Leonidas
Die 1 ist wohl der Rückgabewert von ``write``.
Re: Anzeigen von Unicode in Windows
Verfasst: Donnerstag 27. Januar 2011, 08:28
von mkesper
Mit "Windows-Consolen" hat das Ganze allerdings nichts zu tun. Führe mal deinen Code außerhalb von Eclipse aus.