Python IDLE中的"输入中不支持的字符"

Abr*_*ham 1 python unicode utf-8 python-idle python-2.7

我想将文件的地址分配给名为's'的变量:

>>> 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
Run Code Online (Sandbox Code Playgroud)

如您所见,我在输入错误中返回不支持的字符.而这个错误是因为文件名中的阿拉伯语/波斯语字母.

奇怪的是我可以在IDLE中写阿拉伯语/波斯语,我可以有一个包含阿拉伯语/波斯语字母的字符串变量:

>>> s = "????"
>>> s = "??? ??? ???? ???"
Run Code Online (Sandbox Code Playgroud)

最后我发现问题的根源是波斯语和阿拉伯语之间有两种不同形式的字母.它是"ی"和"ي".两者都标明相同的字母,第一个是波斯语,第二个是阿拉伯语.(阿拉伯语形式在字母下面有两个点(.)).

如你所见,我不能使用一种形式:

>>> s = "?"
>>> s = "?"
Unsupported characters in input

>>> 
Run Code Online (Sandbox Code Playgroud)

我该如何处理这个问题?反正有没有为IDLE添加字体?

小智 7

我正在使用Ubuntu + IDLE没问题.

>>> a = "????"
>>> print (a)
????
>>> a
'\xd8\xac\xd8\xa7\xd8\xaf\xdb\x8c'
Run Code Online (Sandbox Code Playgroud)

检查选项〜配置IDLE~常规菜单.在那里你可以设置UTF-8,从第一个选项卡中你可以选择你的字体.