Alle Versuche unter SUSE Linux 10.0, zentral auf UTF-8 eingestellt.
1. Eric (habe die Version jetzt nicht greifbar, dürfte 3.8.xxx sein), im interaktiven Fenster:
Code: Alles auswählen
st = 'Münster'
Code: Alles auswählen
print st # ok, keine Fehlermeldung, das ü sieht richtig aus (wenn auch blässlich).
Code: Alles auswählen
st_latin = st.decode('latin-1')
Code: Alles auswählen
st_utf = st.decode('utf-8')
Das kommt mir merkwürdig vor. Wenn ich es richtig interpretiere, heißt es doch, dass im Bereich 128-255 Werte vorkommen, denen in utf-8 kein Zeichen entspricht. Wieso denn das? Andere Werte als 'ü' würden mich ja nicht wundern.
2. IDLE:
sys.stdout.encoding ist 'utf-8'. Der obige Versuch ergibt bei st_utf einen String, der mit print richtig als 'Münster' ausgegeben wird, bei st_latin werden für das 'ü' zwei Zeichen ausgegeben. So weit ok.
Jetzt das Umgekehrte:
Code: Alles auswählen
uu = u'Köln'
s_utf = uu.encode('utf-8')
s_latin = uu.encode('latin-1')
Unter Windows (dort sys.stdout.encoding = 'cp1252') alles wie erwartet.
Kann mir jemand auf die Sprünge helfen?