[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