tkinter + unicode + bug or feature??

Bob van der Poel bvdpoel at
Sat Jan 25 03:43:57 CET 2003

Martin v. Löwis wrote:
> Bob van der Poel wrote:
>> Okay. I'll have to look at the MegaWidget stuff later. I'm just 
>> thinking that doing something like 
>> string=entrywidget.get().encode('iso8859-1') should do the trick. Not 
>> sure, though, what encoding to use. Is there a pythonic way to 
>> determine the best to use?

Just as a followup, unless I'm totally missing something here using PWM 
doesn't help.

> Encoding the Unicode string should work, as would comparing it to other 
> Unicode strings - you should try to eliminate all non-ASCII byte strings 
> that represent text; then you can happily compare text strings.

BTW, I really think this is a bug. If you enter "ascii" text into the 
entry box you get() returns a string, if you enter "extended ascii" you 
get a unicode string. And since one can't tell beforehand what the user 
is going to enter... Add to this the fact that the behaviour is not 
documented in the tkinter reference manual (yes, it is the tcl/tk manual).

> There is really no way anybody could tell you what encoding to use: YOU 
> should know what encoding your text strings have - how could we possibly 
> know?

Well, yes. Being on the US-side (altho I do live in Canada and we're a 
bit less centric in our thinking) I was just referring to a "normal" 
encoding...whatever that is :)

> If you want to find out what encoding the user is likely to use, you 
> should use locale.nl_langinfo(locale.CODESET) on POSIX systems, and 
> locale.getlocale()[1] on Windows.

Yes, local.getlocale() works fine. Now, if I do use encode on these 
strings, will I run into problems if the user's locale is not encodable 
into 8bits. Or can that not happen?

Bob van der Poel ** Wynndel, British Columbia, CANADA **
EMAIL: bvdpoel at

More information about the Python-list mailing list