如何将ASCII十六进制代码中的路径转换为Python中等效的ASCII字母?
问题描述:
我想使用Python中的以下路径:如何将ASCII十六进制代码中的路径转换为Python中等效的ASCII字母?
/home/user/Music/library/1-02%2520Maralito.mp3
的文件名是:“1-02 Maralito .mp3“
所以空间正在转换为代码%2520,我不知道代表什么。
我在Ubuntu上使用Rhythmbox API,我无法将值转换回Python。有什么建议吗?
答
该字符串已被URL编码两次。 %25
代表%
字符。解码%25
产生的%20
代表一个空格。
urllib.parse.unquote
(只是urllib.unquote
在Python 2)解码%
编码,你会想它两次解码:
t = "/home/user/Music/library/1-02%2520Maralito.mp3"
from urllib.parse import unquote # Python 3
from urllib import unquote # Python 2
print(unquote(unquote(t)))
哦,谢谢。这是相当* urllib.parse.unquote(urllib.parse.unquote(uri))* – latach
是的,你是对的,他们改变了Python 3中。我无意中给你的Python 2.x的答案。我会更新。 – kindall