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

CCF.Herzog at gmx.net CCF.Herzog at gmx.net
Fri Apr 20 14:48:37 EDT 2001


Hallo, 
vielen Dank für die Antwort

On 20 Apr 2001, at 6:53, Martin v. Loewis wrote:

> > f = codecs.open(filename,"w","cp1252")
> > f.write(txt)
> > macht auch keinen Unterschied; auch wenn ich vorher versuche:
> 
> Das ist verwunderlich. "kein Unterschied" bedeutet "ASCII decoding
> error"? Kannst Du mal, als Beispiel, das repr() von einem txt senden,
> der sich auf diese Weise nicht abspeichern lässt?
> 
Ja sehr gerne, zum Beispiel folgender:

'u'\xe2\xee\xfb\n' lässt sich korrekt speichern, fügt man dem im 
Text-Widget mit der Tastatur ein ä (umlaut a) hinzu, passiert 
folgendes (wohlgemerkt, derselbe Text plus einem ä):

'\xc3\xa2\xc3\xae\xc3\xbb\xe4\n'
mit der Fehlermeldung (etwas gekürzt):
Exception in Tkinter callback
Traceback (most recent call last):
  File "c:\programme\python21\lib\lib-tk\Tkinter.py", line 1285, in 
__call__
    return apply(self.func, args)
  File "D:\Che\ [...] \chwin.py", line 99, in savefile as
    ofp.write(txt)
  File "c:\programme\python21\lib\codecs.py", line 340, in write
    return self.writer.write(data)
  File "c:\programme\python21\lib\codecs.py", line 137, in write
    data, consumed = self.encode(object,self.errors)
  File "c:\programme\python21\lib\encodings\cp1252.py", line 18, in 
encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeError: ASCII decoding error: ordinal not in range(128)


Wie gesagt, die Speicherroutine sieht so aus:
            ofp = codecs.open(sname,"w","cp1252")
            ofp.write(txt)


Vielen Dank schon mal!
Christoph



More information about the Python-de mailing list