[Python-de] korrekte Darstellung der Umlaute
Peter Otten
__peter__ at web.de
Do Apr 5 15:47:49 CEST 2012
Michael Ströder wrote:
> Bernd Nawothnig wrote:
>> Du beschreibst das Elend des heillosen Mischmaschs zwischen
>> Bytesstrings und Unicode in Python 2 ziemlich gut. Genau solche
>> Ungereimtheiten waren der Anstoß, das alles in Python 3 sehr viel
>> schöner, aber dann eben leider nicht mehr abwärtskompatibel zu lösen.
>> Strings sind dort grundsätzlich Unicode, den dann überflüssigen
>> Datentyp Unicode gibt es dort folglich nicht mehr.
>
> Was genau ist der prinzipielle Unterschied? Meines Erachtens lediglich,
> dass der Default ein anderer ist. Trotzdem muss man das Thema verstanden
> haben.
Im Prinzip ja. In der Praxis hätte Michaels Programm dann wahrscheinlich so
ausgesehen:
#/usr/bin/env python3
filename = "tmp.cfg"
config = {}
d = open(filename, "r")
allezeilen = d.readlines()
d.close()
for zeile in allezeilen:
if "=" in zeile:
tmp = ()
tmp = zeile.split("=", 1)
index = tmp[0]
inhalt = tmp[1]
config[index.strip().lower()] = inhalt.strip()
print(config)
Nicht besonders elegant, aber es hätte das ausgegeben, was jemand erwartet,
der sich noch nicht mit Unicode beschäftigt hat.
In Python 2 stößt der Newbie schon bei
name = raw_input()
print "Hallo,", name.upper()
auf Probleme, jedenfalls wenn er zufällig Björn heißt...
Mehr Informationen über die Mailingliste python-de