Percent-Encoding, Decoded
URLs may only contain a limited set of characters, so everything else — spaces, accents, ampersands, question marks, emoji — must be percent-encoded: replaced by % followed by the bytes' hexadecimal value. A space becomes %20, “ü” becomes %C3%BC, “&” becomes %26. This tool converts both directions: encode raw text so it survives inside a URL, or decode a percent-laden address back into something a human can actually read. Both run instantly, locally, in your browser.
The Two Encoding Modes — and Why the Difference Matters
The single most common URL-encoding mistake is using the wrong scope, so this tool makes the choice explicit. Component mode (encodeURIComponent) encodes everything reserved, including /, ?, & and = — correct when encoding a single value destined for a query parameter, where an unencoded ampersand would split your value in half. Full-URL mode (encodeURI) preserves the characters that give a URL its structure and encodes only what is genuinely illegal — correct when cleaning up a complete address without destroying it. Encode a whole URL in component mode and it stops being a URL; encode a query value in URL mode and embedded & or = characters silently corrupt the query string. Pick the mode that matches what you are encoding.
How to Use It
- Choose Encode or Decode.
- For encoding, select component or full-URL mode as above; paste your text and the result appears live.
- For decoding, paste any percent-encoded string — query fragments, tracking links, log entries — and read it in plain text. The tool also offers to decode
+as space, the convention inside traditional form-encoded query strings. - Copy the output with one click.
Everyday Jobs for This Tool
- Building links by hand: search URLs, mailto links with subjects, share links with pre-filled text — every parameter value needs component encoding.
- Reading analytics and logs: referrer URLs and campaign parameters arrive encoded; decoding reveals the actual search terms and paths.
- Debugging APIs: when a request mysteriously truncates at an ampersand or a plus sign turns into a space, the encoding layer is almost always the culprit.
- Inspecting suspicious links: phishing URLs hide their true destination behind layers of encoding; decoding (sometimes twice) exposes where a link really points before anyone clicks it.
Notes on Correctness
Encoding here follows the UTF-8 convention used by every modern browser and server: characters become their UTF-8 bytes, each byte percent-encoded. Decoding rejects malformed sequences (a lone % or %ZZ) with a clear message rather than producing silent garbage. Double-encoding — feeding already-encoded text through the encoder again, producing %2520 from a space — is the classic bug to watch for; if a decoded string still contains percent signs, decode once more and you have probably found one in the wild. As with everything on this site, your URLs, parameters and tokens are processed without leaving the page.
A Habit Worth Forming
When building any URL by hand, encode each query value individually in component mode and only then assemble the full address. Assembling first and encoding afterwards is how working links get destroyed and how broken ampersands sneak into production emails. The discipline takes ten extra seconds; debugging the alternative takes considerably longer, usually at the worst possible moment — after the campaign with the broken link has already gone out.
Frequently Asked Questions
Should I use component mode or full-URL mode?
Encoding one value for a query parameter? Component mode — it encodes &, = and / so they cannot break the query. Cleaning a complete address? Full-URL mode, which keeps the URL’s structure intact.
Why did my plus signs turn into spaces after decoding?
In traditional form-encoded query strings, + represents a space. The tool offers this interpretation as an option; outside query strings, a literal plus stays a plus.
What is double-encoding and how do I spot it?
It is encoding already-encoded text, turning %20 into %2520. If decoded output still contains percent sequences, decode again — needing two passes confirms the string was double-encoded.
How are non-English characters encoded?
As their UTF-8 bytes, each percent-encoded — the modern standard. “ü” becomes %C3%BC, and emoji become four-byte sequences. Decoding reverses the process exactly.