gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:52:18 26 4
gpt4 key购买 nike

我有一个 nautilus 脚本,可以将我喜欢的音乐复制到一个特殊的文件夹中,并将其同步到我的手机和汽车。它在包含有趣字符(如 á)的路径上失败。我正在使用以下内容逐步修复它:

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

但我已经厌倦了这些创可贴解决方案,并且我确信有更好的方法可以使用str.encode来做到这一点或str.decode

有谁认识这种奇怪的编码以及我如何正确处理它?问题是,例如,我有一个文件夹,例如

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

在我的磁盘上,但是当我使用 os.getenv('NAUTILUS_SCRIPT_CURRENT_URI') 获取它时,即 nautilus 中当前选择的文件夹,它在 python 中显示为

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

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

最佳答案

您正在查看 url 编码。使用urllib.unquote()将它们解释为 UTF-8 编码文本,然后解码为 un​​icode:

>>> 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

在Python 3中,您需要使用urllib.parse.unquote() ;该功能已被移动。

关于python - python/nautilus 脚本组合的奇怪字符编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com