2015-12-19 113 views
0

我有python腳本其發送的文件路徑到剪貼板,我使用pywinauto粘貼到Windows對話框。 這裏使用我的代碼的一部分win32clipboard:蟒蛇win32clipboard不工作的Unicode字符

win32clipboard.OpenClipboard() 
win32clipboard.EmptyClipboard() 
win32clipboard.SetClipboardText(paths,win32clipboard.CF_UNICODETEXT) 
win32clipboard.CloseClipboard() 

腳本工作正常,含ASCII字符的路徑,但如果文件名中包含一個Unicode它給?????而不是unicode。我應該做些什麼來改變它的工作。

+0

它適用於我,你能提供一個功能完整的代碼示例嗎? – steinar

+0

like if paths =「C:\ Users \ admin \ Downloads \ file \喵萌茶會字幕組」[10月新番.exe],然後我得到C:\ Users \ admin \ Downloads \ file \ ??? ????] [10 ??? .exe在一個對話框中。 – geeko

+0

字符串'u「喵萌茶會字幕組] [10月新番.exe''也適用於我。該程序中的字符串是如何讀取的?我假設路徑的類型不是unicode,或者它沒有正確編碼。 – steinar

回答

1

下面的代碼示例爲我工作:

# -*- coding: utf-8 -*- 
import win32clipboard 

def set_text(txt): 
    win32clipboard.OpenClipboard() 
    win32clipboard.EmptyClipboard() 
    win32clipboard.SetClipboardText(txt, win32clipboard.CF_UNICODETEXT) 
    win32clipboard.CloseClipboard() 

set_text(u"喵萌茶會字幕組][10月新番.exe") 

當我經過這個貼,我得到完全喵萌茶會字幕組][10月新番.exe

所以,問題有可能與您的字符串paths的內容做,要麼它不是<type 'unicode'>,或者它在上一步中沒有正確編碼。

+0

你是對的。我現在糾正了它。使用os.listdir來獲取文件名時出現了問題。我錯過了對它的編碼。謝謝,現在它可以工作。 – geeko