Re: Foreign Character Problems In Python 2.5 and Tkinter

2007-10-13 Thread Janne Tuukkanen
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

Re: Foreign Character Problems In Python 2.5 and Tkinter

2007-10-13 Thread Janne Tuukkanen
Sat, 13 Oct 2007 16:13:21 +0300, Juha S. kirjoitti:

> Thanks for the reply. I made changes to my code according to your 
> example. Now any Scandinavian characters that are outputted by the 
> program are missing in the Tk text box.


> file = codecs.open(filename, 'r', 'utf-8', 'ignore')

 Remove that 'ignore'. If you then get error which complains,
that utf-8 codec can't handle the file, you've found the culprit.
The file might be in iso-8859-1.


JanneT

-- 
http://mail.python.org/mailman/listinfo/python-list