2015-11-16 33 views
0

我想要的文件的地址分配給一個名爲「S」變量:「輸入不支持的字符」在Python IDLE

>>> s= 'D:/4-Tutorials/Network/CCNA-farsi-shariaty/روش های آدرس دهی IP و Subnetting.mp4' 
Unsupported characters in input 

>>> s= u'D:/4-Tutorials/Network/CCNA-farsi-shariaty/روش های آدرس دهی IP و Subnetting.mp4' 
Unsupported characters in input 

>>> s='D:/4-Tutorials/Network/CCNA-farsi-shariaty/روش های آدرس دهی IP و Subnetting.mp4'.decode('utf8') 
Unsupported characters in input 

>>> s='D:/4-Tutorials/Network/CCNA-farsi-shariaty/روش های آدرس دهی IP و Subnetting.mp4'.encode('utf8') 
Unsupported characters in input 

>>> s='D:/4-Tutorials/Network/CCNA-farsi-shariaty/روش های آدرس دهی IP و Subnetting.mp4'.decode('utf-8') 
Unsupported characters in input 

正如你看到的我回到了我在輸入錯誤不支持的字符。而這個錯誤是由於文件名中的阿拉伯文/波斯文字。

奇怪的是,我能在空閒寫阿拉伯語/波斯語和我可以有一個包含阿拉伯語/波斯語字母的字符串變量:

>>> s = "سلام" 
>>> s = "روش هاي آدرس دهي" 

最後我發現,問題的起源是一個字母有波斯和阿拉伯之間的兩種不同形式。它是「ی」和「ي」。兩者都表示同一封信,第一封是波斯文,第二封是阿拉伯文。 (阿拉伯文在信件下有兩個點(。))。

正如你看到的,我不能用一種形式:

>>> s = "ي" 
>>> s = "ی" 
Unsupported characters in input 

>>> 

我該如何處理這個問題呢?反正有沒有爲IDLE添加字體的例子?

回答

5

我使用Ubuntu +閒置,沒有問題。

>>> a = "جادی" 
>>> print (a) 
جادی 
>>> a 
'\xd8\xac\xd8\xa7\xd8\xaf\xdb\x8c' 

檢查選項〜配置IDLE〜常規菜單。在那裏你可以設置UTF-8,並從第一個標籤中選擇你的字體。

+1

設置默認源編碼爲UTF-8,只有當源是* * UTF-8編碼的幫助。在Windows上,即使粘貼用U字頭線路進入空閒的外殼時,這並不能幫助。就像許多unicode問題一樣,Python 3在這裏工作得更好。 –