Free URL Decoder Online — Decode Percent-Encoded Strings Instantly
Paste any percent-encoded URL or query string and get the clean, readable version back in milliseconds — entirely in your browser. No server, no sign-up, no install.
Whether you're debugging an API response, reading server logs, or trying to understand what https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world actually means, this URL decoder converts it to plain text instantly. Both %20 and + are handled — the tool automatically decodes spaces in either representation.
How to Use the URL Decoder
Three steps to a readable URL:
- Paste your percent-encoded string into the input field — the decoded result appears immediately as you type, with no button press required. Accepts full encoded URLs, isolated query string fragments, or any percent-encoded value.
- Read the decoded output — every
%XXsequence is converted to its original character, multi-byte UTF-8 sequences are reassembled into Unicode characters, and+signs in query strings are treated as spaces. - Copy the result — click Copy or press Shift + Enter to copy the decoded string to your clipboard.
Need to re-encode the decoded output? Click Swap & Encode to send it directly to the URL Encoder.
What Is URL Decoding
URL decoding (also called percent-decoding) is the reverse of percent-encoding: it converts %XX sequences back to their original characters. The two-digit hexadecimal value after % identifies the byte value in UTF-8. For example, %20 becomes a space, %2F becomes /, %C3%A9 becomes é, and %F0%9F%9A%80 becomes the rocket emoji 🚀.
This tool also handles the + sign used in application/x-www-form-urlencoded data — a common format for HTML form submissions where + represents a space. Both conventions are decoded automatically.
URL Decoding Examples
Common encoded inputs and their decoded outputs:
| Encoded Input | Decoded Output |
|---|---|
hello%20world |
hello world |
user%40example.com |
user@example.com |
%E2%82%AC100 |
€100 |
caf%C3%A9 |
café |
search%3Fq%3Dhello%26lang%3Den |
search?q=hello&lang=en |
%F0%9F%9A%80 |
🚀 |
already%2520encoded |
already%20encoded (double-encoded — one decode layer removed) |
The last row is an important edge case: %2520 is a double-encoded %20. Decoding it once produces %20, not a space — because the %25 decodes to a literal %, leaving %20 intact. To recover the original space, paste the result back and decode a second time.
When to Use a URL Decoder
- Debugging API responses: Server responses and logs often contain percent-encoded URLs in headers like
Location,Referer, orX-Forwarded-For. Decoding them reveals the actual path and parameters being processed. - Reading query strings from logs: Access logs record raw encoded URLs. Decoding them helps you understand which pages users visited and what parameters they submitted.
- Inspecting redirect chains: Redirect URLs embedded inside other URLs are double-encoded. Decoding them layer by layer reveals the final destination.
- Understanding OAuth and authentication flows: OAuth tokens and authorization codes often appear percent-encoded in callback URLs. Decoding lets you inspect the state parameter and verify the flow.
- Decoding clipboard content from browsers: When you copy a URL from the address bar of some browsers, it gets copied in percent-encoded form. Decode it to get the clean human-readable version.
Common Use Cases
- Developer debugging: Paste an encoded API endpoint from a curl command or a network inspector to read the actual path and parameters at a glance.
- Log analysis: Convert encoded query strings in web server logs to readable searches and filter values to understand user behavior.
- Security review: Encoded payloads in HTTP requests can hide injection attempts. Decoding them reveals the actual content for inspection.
- Data cleaning: Encoded strings in database records, CSV exports, or JSON payloads often need decoding before they can be processed or displayed correctly.
- Email link inspection: Links in automated emails are frequently percent-encoded for tracking. Decoding them shows the destination URL before clicking.
Common Mistakes When Decoding URLs
- Expecting one decode pass to fully restore a double-encoded string. If a URL was encoded twice, a single decode produces a still-encoded string. The output will still contain
%XXsequences — paste it back and decode again to get the original text. - Decoding an entire URL when only the parameter values should be decoded. If you decode
https%3A%2F%2Fexample.com%2F, you gethttps://example.com/— which is correct. But if the URL contains embedded parameter values that were intentionally encoded, decoding the entire string merges them with the URL structure and breaks the original intent. - Assuming
+always means a space. In path segments,+is a literal plus sign. Only in query strings — underapplication/x-www-form-urlencodedconventions — does+represent a space. This tool treats+as a space uniformly, which matches the most common use case (query string decoding). - Ignoring invalid
%sequences. A bare%not followed by two valid hex digits is a malformed sequence. This tool reports an error in that case. If you intended a literal percent sign in your original string, it should have been encoded as%25.
Frequently Asked Questions
What is the difference between URL decoding and Base64 decoding?
URL decoding converts %XX percent-encoded sequences to their original characters — it operates on the percent-encoding scheme defined in RFC 3986. Base64 decoding converts a Base64-encoded string (using characters A–Z, a–z, 0–9, +, /) back to its original binary or text content — it is a completely separate encoding format. If your string contains % signs and hex digits, use URL decoding. If it looks like aGVsbG8=, use the Base64 Decoder.
Why does my decoded URL still look garbled after decoding once?
This usually means the URL was double-encoded — encoded twice, so each % was itself encoded as %25. For example, a space becomes %20 after one encoding, then %2520 after a second encoding. To fix it, decode the string again. Simply paste the result back into the input field and the tool will remove the second encoding layer, revealing the fully readable string.
What does decoding %2520 produce — a space or %20?
Decoding %2520 produces %20 — not a space. The sequence %25 decodes to a literal % sign, leaving the 20 to form %20 in the output. This is the double-encoding scenario: the original string contained %20 (a space already encoded), which was then encoded a second time, turning the % into %25. Decode once more to convert %20 into an actual space.
Should I decode the entire URL or just the query parameters?
It depends on your goal. If you want to read a complete encoded URL as human-readable text, decoding the whole string is fine. If you're processing the URL programmatically and need to extract parameter values, decode each parameter value individually using the query string parser in your language — most standard library URL parsers do this automatically and correctly.
Can I decode URLs that contain non-Latin characters?
Yes. This tool decodes UTF-8 encoded sequences, which covers every Unicode character — Arabic, Chinese, Japanese, Cyrillic, accented Latin characters, emoji, and more. Multi-byte characters are represented by several consecutive %XX sequences that together encode a single Unicode code point.
Is it safe to decode URLs containing sensitive data here?
Yes. All decoding runs locally in your browser using JavaScript. Nothing is sent to any server, and nothing is stored or logged. You can confirm this by opening your browser's network tab while using the tool — it will show no outbound requests.
What happens if the encoded string has an invalid % sequence?
If a % sign is followed by fewer than two hexadecimal digits, or by characters that aren't valid hex (0–9, A–F), the decoding will fail and this tool displays an error message. Common causes include manually edited URLs, truncated strings, or text where % appears as a literal percent sign rather than as an encoding prefix. In that case, escape the literal % signs as %25 before decoding.
Resources
- RFC 3986 — Uniform Resource Identifier (URI): Generic Syntax — The specification that defines percent-encoding rules and URI syntax.
- MDN Web Docs — decodeURIComponent() — Reference for the JavaScript function used by this decoder, including which characters it handles.