URL to Text — Free, in Your Browser
The reverse: a link full of %20, %26 and %E2%80%99 — a referrer string from your analytics, a form payload in an error log, a shared search link — and you need to read what it actually says.
URL Encoder & Decoder
Percent-encoding, both directions
Encode mode offers two flavors: percent (encodeURIComponent — spaces become %20, safe for path segments) and query (spaces become +, the query-string convention). Decode handles both, and shows a warning if the input is not valid percent-encoding.
Why convert URL to Text
The reverse: a link full of %20, %26 and %E2%80%99 — a referrer string from your analytics, a form payload in an error log, a shared search link — and you need to read what it actually says. Decoding locally keeps whatever that payload contains (tokens, IDs, personal names in search queries) off a third-party form.
Paste the encoded string or whole query and read the plain text back. It is the exact inverse of the encoder above: the same rules, run in the other direction.
How to do it (3 steps)
- Paste the percent-encoded text.
- The decoded result appears instantly.
- Copy the readable text.
Technical note
Decoding is forgiving by design: a bare + in a query string is decoded as a space (the application/x-www-form-urlencoded convention browsers use for form submissions), while %20 is a space everywhere. If a % is not followed by two hex digits, the decoder leaves it as-is rather than failing — real-world strings from logs and referrers are full of half-mangled sequences, and a hard error on the first odd % would make the tool useless exactly when you need it.
The mistake worth avoiding
The common mistake is decoding a URL that was double-encoded, then hand-editing the visible percent-fifty signs to fix it. If the output still contains percent-XX sequences, the source was encoded twice — decode again rather than editing characters, because hand-editing breaks the pairs you cannot see. The other quiet one: decoding a full URL when you only needed one parameter readable. The protocol slashes and path slashes are not escapes, and the decoder leaves them alone — do not clean those up.
FAQ
- Is the string uploaded? No — decoding happens in your browser.
- Why did + become a space? That is standard form-encoding: browsers submit form fields with + for spaces. The decoder honours that convention.
- What if a % is not followed by two hex digits? It is left unchanged — a warning sign that the string was already partially decoded or truncated.
- Why did some percent codes stay unchanged? A percent sign not followed by exactly two hex digits is not a valid escape, so the decoder preserves it verbatim — a signal that the string was already partially decoded, or mangled in transit. Investigate the source rather than forcing it through a second pass.
URL Encoder/Decoder — full tool →