[UNICODE] Tkinter and Unicode->ISO-8859-1 issues

Martin von Loewis loewis at informatik.hu-berlin.de
Fri Jan 11 15:15:37 CET 2002


vfs at mail.com (Valter Ferraz Sanches) writes:

> example, and try to write again the same string or other that contain
> latin1 stuff, I´m not capable of reading the text file correctly (I
> see the Unicode stuff broken in one byte chars; this way, "ç" becomes
> "ç" and so on)

If you load a file that contains non-ASCII characters into a Tk
widget, I recommend to insert it as a Unicode string, instead of as a
byte string (UTF-8 or otherwise). That means, do

  data = open("file.txt").read()
  data = unicode(data, "latin-1")
  widget['text'] = data

  ...

  data = widget['text']
  data = data.encode('latin-1')
  open("file.txt",'w').write(data)

instead of

  data = open("file.txt").read()
  widget['text'] = data

  ...

  data = widget['text']
  open("file.txt",'w').write(data)

That, of course, assumes you want to use latin-1 in your file.

Hope this helps,
Martin



More information about the Python-list mailing list