[Python-de] Tkinter Text-Widget unter Windows Problem beim Speichern

CCF.Herzog at gmx.net CCF.Herzog at gmx.net
Fri Apr 20 02:19:46 EDT 2001


Hallo,
ich kaue seit einiger Zeit an folgendem Problem:
Ich gebe unter Windows 2000 in das Text-Widget von Tkinter Text 
ein, von dem einige Zeichen im Bereich grösser \x80 (128) liegen, 
aber \xff (255) nicht überschreiten, also sowas wie das 1/4-Zeichen 
(188) oder das TM-Zeichen (153). Damit diese Zeichen im Text-
Widget ordentlich dargestellt werden, codiere ich sie vorher mit 
folgender Funktion:

def _u(str):
    return unicode(str,"cp1252").encode("utf_8")

Soweit geht auch alles prima.Das Problem ist nun, den Text des 
Widgets in ein File abzuspeichern. Im Prinzip ist das klar, aber mit 
einem einfachen:

txt = self.textwidget.get(1.0,END)
f = open(filename,"w")
f.write(txt)

erhalte ich meist (bei ausreichender Textmenge: immer) die 
folgende Fehlermeldung:

UnicodeError: ASCII decoding error: ordinal not in range(128)

und kann die Datei nicht speichern.

f = codecs.open(filename,"w","cp1252")
f.write(txt)
macht auch keinen Unterschied; auch wenn ich vorher versuche:
txt = txt.encode("cp1252") 
führt das zum gleichen Ergebnis.
Ich denke, ich mache da einen grundsaetzlichen Fehler, aber 
welchen? Für Hinweise wäre ich überaus dankbar.
Christoph




More information about the Python-de mailing list