如何在python中解码(双重)'url-encoded'字符串

use*_*059 21 python urlencode urldecode

尝试url-encoded按以下方式解码字符串

some_string = 'FireShot3%2B%25282%2529.png'
import urllib
res = urllib.unquote(some_string).decode()
res
u'FireShot3+%282%29.png'
Run Code Online (Sandbox Code Playgroud)

原始字符串是FireShot3 (2).png.任何帮助,将不胜感激.

答: urllib.unquote_plus(urllib.unquote_plus(some_string))由于双重编码.

小智 30

您的输入是双重编码.使用Python 3:

urllib.parse.unquote(urllib.parse.unquote(some_string))
Run Code Online (Sandbox Code Playgroud)

输出:

'FireShot3+(2).png'
Run Code Online (Sandbox Code Playgroud)

现在你有+左边.

编辑:

使用Python 2.7当然是:

urllib.unquote(urllib.unquote('FireShot3%2B%25282%2529.png'))
Run Code Online (Sandbox Code Playgroud)

  • `unqoute_plus`处理`+`字符. (7认同)

use*_*059 9

urllib.unquote_plus(urllib.unquote_plus(some_string)) FireShot3 (2).png