[Python-bugs-list] [ python-Bugs-496084 ] unicode, tkfiledialog.py
noreply@sourceforge.net
noreply@sourceforge.net
Sun, 30 Dec 2001 06:46:31 -0800
Bugs item #496084, was opened at 2001-12-22 03:30
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=496084&group_id=5470
Category: Unicode
Group: None
>Status: Closed
>Resolution: Fixed
Priority: 3
Submitted By: Klaus-G. Meyer (kgm)
Assigned to: Martin v. Löwis (loewis)
Summary: unicode, tkfiledialog.py
Initial Comment:
The file tkfiledialog.py from python/lib/lib-tk
contains some test code:
if __name__ == "__main__":
print "open", askopenfilename(filetypes=[("all
filez", "*")])
print "saveas", asksaveasfilename()
I tried it, but it won't work, if i select filenames
with umlaut:
C:\Programme\Python\Lib\lib-tk>python tkfiledialog.py
open
Traceback (most recent call last):
File "tkfiledialog.py", line 128, in ?
print "open", askopenfilename(filetypes=[("all
filez", "*")])
UnicodeError: ASCII encoding error: ordinal not in
range(128)
The reason is (i think), that askopenfilename
surprisingly returns unicode string instead of string.
If functions return sometimes unicode strings, how
should this be done?
Is this a bug or a design problem?
It would be nice, if the test code contains a working
example.
----------------------------------------------------------------------
>Comment By: Martin v. Löwis (loewis)
Date: 2001-12-30 06:46
Message:
Logged In: YES
user_id=21627
Fixed in tkFileDialog 1.5.
----------------------------------------------------------------------
Comment By: M.-A. Lemburg (lemburg)
Date: 2001-12-29 03:57
Message:
Logged In: YES
user_id=38388
I don't know anything a about Tkinter, sorry. Printing Unicode is a huge can of worms -- I'm not sure whether it's
worth the trouble to try to magically find out which encoding the terminal, GUI or whatever backend you use for
stdout is being used. ASCII should work in most cases and that's what Python already tries...
Martin, please patch the file or simply close the bug with "Won't fix".
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2001-12-29 01:19
Message:
Logged In: YES
user_id=21627
It is by design that the dialog returns Unicode strings if
the file name contains non-ASCII characters.
It is easy to fix the example, just append .encode("utf-8")
at the end of each print statement. Fixing it in the "right"
way is more involved; you'll have to find out what encoding
the terminal uses on which the string is printed.
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=496084&group_id=5470