For most systems, Tkinter should accept unicode strings and render them more or less properly:

"more or less properly" means that Tk treats each element of the unicode string as a separate character, and renders it left to right (it gets right-to-left layout and combining characters wrong).

Apparently the situations on Macs, including OS X is not quite so sunny:

RedHat9 and Fedora Core 1 shipped with mismatched versions of Python and Tcl unicode support, leading to the following error:

>>> t.insert(Tkinter.END, u"\xc1")
SystemError: Py_UNICODE and Tcl_UniChar differ in size

If you BuildYourOwnPython you won't have this problem. If that's not an option, you can also get around this by encoding your Unicode strings as UTF-8:

>>> t.insert(Tkinter.END, u"\xc1".encode("utf-8"))

tkinter: UnicodeSupport (last edited 2010-07-26 11:59:13 by localhost)