tkFileDialog.askdirectory()破坏了unicode目录

时间:2013-07-16 06:01:58

标签: python tkinter

如果目录中包含非ASCII字符,我在使用tkFileDialog.askdirectory()的Windows上遇到问题。

以下是一个例子:

import tkFileDialog
# Open folder C:\notused\weekly\1\Music\岩崎 琢
# (But while the dialog is open, the dialog itself shows the name mangled
# as "C:\notused\weekly\1\Music\?? ?")
o_result = tkFileDialog.askdirectory()
# Return result is unicode, which is correct..
print type(o_result)
# ...but the result string has the non-English characters mangled.
print o_result
# And it's not just the display, they seem to be actually mangled.
print ord(o_result[-1])
# The ordinal value of the final character is the same as the question-mark
print ord('?')

我注意到对话框本身在我触摸它之前显示了受损的字符串(这告诉我这不是我的处理错误),但我找不到任何其他参数或设置来更改为{{ 1}}在这种情况下正常工作。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我有时间使用Windows下的tkFileDialog,最后用文件解析解决了我的问题:

import Tkinter
Tkinter.wantobjects = 0

请注意,我使用的是askopenfiles()而不是askdirectory(),但它可能适用于您的情况。