URL Decoder
Turn %20, %C3%A9 and friends back into readable text. Handles + as space, double-encoded links and malformed sequences without giving up.
%2520 in a link? Turn on Decode repeatedly.Need to encode instead? URL Encoder →What Does a URL Decoder Do?
It reverses percent-encoding so you can read what a link really contains.
Browsers, servers and analytics tools percent-encode URLs: spaces become %20 or +, slashes become %2F, and non-English characters become sequences of UTF-8 bytes like %E6%97%A5. Decoding turns them back into readable text.
That's essential when debugging redirects and OAuth callbacks, reading UTM-tagged links, inspecting server logs or extracting the real destination hidden inside a tracking URL.
Real-world links are often messy. Some are double-encoded (%2520 instead of %20) because they passed through two systems — Decode repeatedly unwraps up to five layers and tells you how many it found.
Others contain a stray % or an invalid byte sequence. Instead of failing like decodeURIComponent, this tool decodes everything that is valid, leaves the broken parts untouched and warns you about them.
Common URL Decoding Problems
What you might see, and what it means.
Double encoding: %2520
%25 is an encoded %, so %2520 decodes to %20 and then to a space. Enable Decode repeatedly to unwrap every layer automatically.
Plus signs
In query strings + means a space. In paths and some APIs it's a literal plus. If your result has unexpected spaces, turn off + as space. A real plus is always encoded as %2B.
Malformed sequences
A % not followed by two hex digits (like 100%) or bytes that aren't valid UTF-8 (like %E9 from old Latin-1 systems) are left as-is and reported in a warning.
Lists of URLs
Paste one URL per line and enable Each line separately so one broken line doesn't affect the others.
How to Use the URL Decoder
Get your result in under ten seconds.
Paste encoded text
Paste a URL, query string, log line or list of links into the input.
Adjust options
Choose whether + means space, decode line by line, or unwrap double encoding.
Copy the result
Readable text appears instantly — copy it or download it as a .txt file.
Why Use the URL Decoder on Developers Web Tools
Fast, accurate and private — built for developers.
Never crashes
Malformed % sequences are kept as-is with a warning instead of a cryptic URIError.
Fixes double encoding
Unwraps %2520-style links in up to five passes and reports the count.
Form-aware
Converts + to spaces for query strings, or keeps it for paths.
Bulk friendly
Decode hundreds of URLs at once, one per line.
UTF-8 correct
Multi-byte characters and emoji decode exactly as browsers do.
Private
Links with tokens or personal data never leave your browser.
Frequently Asked Questions
It stops at the first invalid sequence — a % without two hex digits, or bytes that aren't valid UTF-8. This decoder handles each sequence separately, decodes everything valid and lists how many problems it skipped.
Enable Decode repeatedly. The tool keeps decoding while the text still contains valid percent sequences (up to five passes) and shows how many passes were needed.
In query strings and form data, yes — that's the application/x-www-form-urlencoded format. In URL paths a + is a literal plus sign. The option is on by default because most pasted URLs are query strings.
%E9 is “é” in the old Latin-1 encoding, but on its own it isn't valid UTF-8, which modern URLs use. The sequence is left unchanged and flagged. In UTF-8, “é” is %C3%A9.
Yes. Paste the whole link — the structure stays the same and only the encoded parts change. To split it into protocol, host, path and parameters, use the URL Parser.
No. Everything runs locally in your browser, so private links, session IDs and tokens stay on your device.