Juha S. kirjoitti: > problem is that when I try to save its contents to a .txt file, any > Scandinavian letters such as "äöå ÄÖÅ" are saved incorrectly and show up > as a mess when I open the .txt file in Windows Notepad. > > It seems that the characters will only get mixed if the user has typed > them into the widget, but if the program has outputted them, they are > saved correctly.
Did you define the encoding for the source file and put u (for unicode) in front of your strings. The following piece produces proper UTF-8. Couldn't test with Notepad though, no Windows here. Note this message is also encoded in UTF-8, so should be your editor. I can't believe we are still messing with this stuff in 2007. In old bad days it was easy, you should only learn to read { as ä, | as ö etc... and vice versa with localized terminals -- C code looked rather exotic with a-umlauts everywhere ;) #!/usr/bin/python # -*- coding: utf-8 -*- from Tkinter import * import codecs class Application(Frame): def save(self): FILE = codecs.open("outfile.txt", "w", "utf-8") FILE.write(u"START - åäöÅÄÖ\n") FILE.write(self.text_field.get(0.0, END)) FILE.write(u"END - åäöÅÄÖ\n") FILE.close() self.quit() def __init__(self, master=None): Frame.__init__(self, master) self.grid() self.text_field = Text(self, width=40, height=10) self.text_field.grid() self.save_button = Button(self, text="save and exit", command=self.save) self.save_button.grid() if __name__ == "__main__": app = Application() app.mainloop() -- http://mail.python.org/mailman/listinfo/python-list