Your input is encoded double. Using Python 3:

urllib.parse.unquote(urllib.parse.unquote(some_string))

Output:

'FireShot3+(2).png'

now you have the + left.

Edit:

Using Python 2.7, it would need to be:

urllib.unquote(urllib.unquote('FireShot3%2B%25282%2529.png'))
Answer from user1907906 on Stack Overflow
🌐
Elifulkerson
elifulkerson.com › projects › python-double-urlencode.php
Python Double URL-encode
This function also serves as a url_encode function that is more similar to other languages, omitting the 'variablename=' portion of the output. from urllib import urlencode def testcase(text, result): """Test to see if the double_urlencode function's output for an input of 'text' matches 'result'.""" text = double_urlencode(text) if (result != text): print "Error: double_urlencode testcase failure :(" # Pretty up the problem for debugging purposes print text print result buf = "" for i in range(0, len(result)): try: if text[i] == result[i]: buf += " " else: buf += "^" except IndexError: buf += "*" print buf def double_urlencode(text): """double URL-encode a given 'text'.
Discussions

[BUG][python-experimental] double URL encoding of path parameters?
Bug Report Checklist Have you provided a full/minimal spec to reproduce the issue? Have you validated the input using an OpenAPI validator (example)? Have you tested with the latest master to confi... More on github.com
🌐 github.com
6
April 24, 2022
Encode url including slashes?
urllib.parse.quote_plus is what you want. More on reddit.com
🌐 r/learnpython
5
0
October 1, 2022
Double encoding url rejection
It's possible the urlencoding/requests package behave differently on python3. Today my requests to firebase began to be rejected for double-quoting of the query string. I guess this is a change on their end which is why I bring it up here. ... you can see the " is encoded to " and then to %22. More on github.com
🌐 github.com
6
February 15, 2019
%2e Being Decoded in URL
Hi there, When a url-encoded period is included in a url (in path directory, path file, param name, or param value), it gets permanently converted to a period before the request is made (sometime b... More on github.com
🌐 github.com
5
April 6, 2016
🌐
URL Encoder
urlencoder.io › python
How to encode URLs in Python | URLEncoder
In Python 3+, You can URL encode any string using the quote() function provided by urllib.parse package.
🌐
GitHub
github.com › OpenAPITools › openapi-generator › issues › 12227
[BUG][python-experimental] double URL encoding of path parameters? · Issue #12227 · OpenAPITools/openapi-generator
April 24, 2022 - The URL parameter seems to be encoded twice. ... send: b'GET /api/v1/coffees/label/Pinheirense%20Natural HTTP/1.1\r\nHost: localhost:62602\r\nAccept-Encoding: identity\r\nAccept: application/json; charset=utf-8\r\nUser-Agent: OpenAPI-Generator/0.0.1/python\r\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1YjExMjdiZjE2NmU2MDI3MjU3M2ExYjAiLCJpYXQiOjE2NTA4MjUyMzIsImV4cCI6MTY1MDkxMTYzMn0.BrBK7WHoezBee2yuahSr5N8jJ-fJ1WyoaLN7_rDEoeo\r\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1YjExMjdiZjE2NmU2MDI3MjU3M2ExYjAiLCJpYXQiOjE2NTA4MjUyMzIsImV4cCI6MTY1MDk
Author   OpenAPITools
🌐
DEV Community
dev.to › _d7eb1c1703182e3ce1782 › url-encoding-vs-url-decoding-when-and-how-to-use-it-3pk6
URL Encoding vs URL Decoding: When and How to Use It - DEV Community
March 25, 2026 - When you receive a URL with encoded ... Use the URL Encoder/Decoder to decode these quickly. Double encoding happens when you encode an already-encoded URL:...
🌐
Bobby Hadz
bobbyhadz.com › blog › python-decode-url-parameters
How to decode URL and Form parameters in Python | bobbyhadz
Copied!from urllib.parse import unquote url = 'https://bobbyhadz.com/blog%3Fpage%3D1%26offset%3D10' result = unquote(url, encoding='utf-8') # 👇️ https://bobbyhadz.com/blog?page=1&offset=10 print(result) ... The input in the example is double-encoded, so we have to call unquote() twice.
Find elsewhere
🌐
Devzery
devzery.com › post › urlencode-python-mastering-url-encoding-in-python
Python URL Encoding Made Simple: Learn urlencode, Query Strings & API Handling!
April 21, 2025 - Use Libraries that Handle Encoding ... risk of double encoding. Always test your encoded URLs to ensure they work as expected: Use Online Tools: Online tools can help validate the correctness of your encoded URLs. Automated Tests: Implement automated tests in your development pipeline to check for encoding issues. The urllib.parse module is the go-to solution for URL encoding and decoding in Python...
🌐
Linux Hint
linuxhint.com › urlencode-python
How to urlencode in Python? – Linux Hint
Then we have used the “quote” function utilizing parse class and “urllib” to encode the variable “str” value and save it into a new variable, “new.” On the fifth line, we have printed the encoded string “new.” · #!/usr/bin/python import urllib.parse str = "HY!
🌐
URL Encode
urlencoder.org › enc › python's
URL Encoding of "python's" - Online
Encode python's to URL-encoded format with various advanced options. Our site has an easy to use online tool to convert your data.
🌐
Python
docs.python.org › 3 › library › urllib.parse.html
urllib.parse — Parse URLs into components — Python 3.14.6 ...
Parse a query string given as a string argument (data of type application/x-www-form-urlencoded). Data are returned as a dictionary. The dictionary keys are the unique query variable names and the values are lists of values for each name. The optional argument keep_blank_values is a flag indicating whether blank values in percent-encoded queries should be treated as blank strings.
🌐
URLDecoder
urldecoder.io › python
URL Decoding query strings or form parameters in Python | URLDecoder
>>> import urllib >>> queryStr = 'Hellö+Wörld@Python' >>> urllib.unquote_plus(queryStr) 'Hell\xc3\xb6 W\xc3\xb6rld@Python' ... Use our free online tool to decode any URL encoded string back to its normal form.
🌐
Blogger
umar-yusuf.blogspot.com › 2020 › 05 › python-url-encode.html
Geospatial Solutions Expert: Python URL Encode
October 1, 2020 - quote_plus() and urlencode(). They slight do different encoding, however urlencode() is more frequently used so I will talk about it in few seconds. To encode the query string query_string = 'Hellö Wörld@Python' to our base url, the code will look like this:-
🌐
GitHub
github.com › thisbejim › Pyrebase › issues › 294
Double encoding url rejection · Issue #294 · thisbejim/Pyrebase
February 15, 2019 - It's possible the urlencoding/requests package behave differently on python3. Today my requests to firebase began to be rejected for double-quoting of the query string. I guess this is a change on their end which is why I bring it up here. ... you can see the " is encoded to " and then to %22.
Author   thisbejim
🌐
iO Flood
ioflood.com › blog › python-url-encode
[SOLVED] Python URL Encode Using urllib.parse Functions
February 1, 2024 - These include using third-party libraries that offer more features or a different way of handling URL encoding. One such library is requests, which is a popular choice for making HTTP requests in Python. It comes with a built-in method for URL encoding, requests.utils.requote_uri().
🌐
GitHub
github.com › psf › requests › issues › 3077
. Being Decoded in URL · Issue #3077 · psf/requests
April 6, 2016 - requests.get('http://www.example.com/', params=dict(a='x.y')).url Output: u'http://www.example.com/?a=x%2ey' First Line of Request When Viewing Through Proxy: GET /?a=x%2ey HTTP/1.1
Author   psf
🌐
GitHub
github.com › psf › requests › issues › 2119
Get parameters are being double encoded · Issue #2119 · psf/requests
July 4, 2014 - parameters are being double encoded. I have the following code: url = 'http://example.com' queryParameters = {"MenuRequest": '{"language":"en-us","storeName":"R10501","datetime":"00:00:00","tenant":"store1"}'} and I pass it in like such: response = requests.get(url, params = queryParameters, verify=False) the result is this: http://example.com/?MenuRequest=%7B%22language%22%3A%22en-us%22%2C%22storeName%22%3A%22R10501%22%2C%22datetime%22%3A%2200%3A00%3A00%22%2C%22tenant%22%3A%22store1%22%7D ·
Author   psf
🌐
PyTutorial
pytutorial.com › url-encoding-in-python-a-complete-guide
PyTutorial | URL Encoding in Python: A Complete Guide
January 28, 2026 - URL encoding seems simple. But mistakes are common. A frequent error is double-encoding. This happens when you encode a string that is already encoded. The result is a garbled URL.
🌐
Medium
ashishsecdev.medium.com › url-encoding-to-evade-detection-and-identification-with-python-1046e70000cd
URL Encoding to evade detection and identification with Python | by Ashish Bansal | Medium
July 31, 2020 - You may use multiple tools to achieve the same but my intent of this write-up is to explain the “URL Encoding & Decoding” in the simplest possible way by using Python.
🌐
GitHub
gist.github.com › nkentaro › 37f25b802e825da7ab3b7f27c0303047
url encode and decode in python3 - Gist - GitHub
The quote() function encodes space to . Python also has a quote_plus() function that encodes space to plus sign (+). I've written about URL Encoding in python on my website.