python/nautilus脚本组合出现奇怪的字符编码问题

python/nautilus脚本组合出现奇怪的字符编码问题,python,unicode,encoding,Python,Unicode,Encoding,我有一个鹦鹉螺脚本,可以将我喜欢的曲调复制到一个特殊的文件夹中,并与我的手机和汽车同步。它失败的路径与有趣的人物一样,在他们。我正在通过以下方式逐步修复它: temp = temp.replace('%20', ' ') temp = temp.replace('%5B', '[') temp = temp.replace('%5D', ']') 但我已经厌倦了这些绷带解决方案,我相信有更好的方法可以用str.encode或str.decode来实现这一点 有人认识到这种奇怪的编码方式吗?我如

我有一个鹦鹉螺脚本,可以将我喜欢的曲调复制到一个特殊的文件夹中,并与我的手机和汽车同步。它失败的路径与有趣的人物一样,在他们。我正在通过以下方式逐步修复它:

temp = temp.replace('%20', ' ')
temp = temp.replace('%5B', '[')
temp = temp.replace('%5D', ']')
但我已经厌倦了这些绷带解决方案,我相信有更好的方法可以用
str.encode
str.decode
来实现这一点

有人认识到这种奇怪的编码方式吗?我如何正确处理它?问题是,例如,我有一个文件夹,如

/media/music/kálman balogh和吉卜赛cimbalom乐队/aven shavale

在我的磁盘上,但当我使用
os.getenv('NAUTILUS\u SCRIPT\u CURRENT\u URI')
获取它时,即NAUTILUS中当前选定的文件夹,它在python中显示为

/media/music/k%C3%A1lm%C3%A1n balogh和吉卜赛cimbalom乐队/aven shavale


然后,其他操作(如重命名或复制文件)不起作用,因为它在磁盘上找不到文件

您正在查看url编码。用于将其解释为UTF-8编码文本,然后解码为unicode:

>>> import urllib
>>> urllib.unquote('/media/music/k%C3%A1lm%C3%A1n balogh and the gipsy cimbalom band/aven shavale').decode('utf8')
u'/media/music/k\xe1lm\xe1n balogh and the gipsy cimbalom band/aven shavale'
>>> print urllib.unquote('/media/music/k%C3%A1lm%C3%A1n balogh and the gipsy cimbalom band/aven shavale').decode('utf8')
/media/music/kálmán balogh and the gipsy cimbalom band/aven shavale
在Python3中,您需要使用;该功能被移动