python/nautilus脚本comb的奇怪字符编码问题

2024-05-20 16:25:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个nautilus脚本,可以将我喜欢的曲调复制到一个特殊的文件夹中,并同步到我的手机和汽车上。它失败的道路上与有趣的字符,如'。我正在逐步修复它,比如:

temp = temp.replace('%20', ' ')
temp = temp.replace('%5B', '[')
temp = temp.replace('%5D', ']')

但是我已经厌倦了这些bandaid解决方案,我相信有更好的方法来使用str.encode或{}。在

有人能认出这个奇怪的编码吗?我如何才能正确地处理它?问题是,例如,我有一个像

/media/music/kálmán balogh and the gipsy cimbalom band/aven shavale

在我的磁盘上,但是当我使用os.getenv('NAUTILUS_SCRIPT_CURRENT_URI')来获取它时,它在python中显示为

/media/music/k%C3%A1lm%C3%A1n balogh and the gipsy cimbalom band/aven shavale

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


Tags: and文件thebandmusicmediatempreplace
1条回答
网友
1楼 · 发布于 2024-05-20 16:25:05

您正在查看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中,您需要使用^{};该函数已被移动。在

相关问题 更多 >