URL Decode and Encode
Turn %20 and other codes back into readable links, see every parameter, or encode text for a link.
Runs in your browser. Nothing you enter is uploaded.
How to use URL Decode and Encode
- Paste a link or text with % codes. The decoded text appears as you type.
- Read the notes under the result: a link is split into its site, path and each parameter, with values decoded.
- If + signs should stay plus signs, turn off Read + as a space under Options.
- To go the other way, choose Encode. Pick Whole link to keep a link working, or Text or a parameter value to encode everything else.
- Copy the result. Nothing you paste leaves your device.
Examples
A file name with spaces and accents
- Mode: Decode
https://example.com/files/My%20R%C3%A9sum%C3%A9%202026.pdf
https://example.com/files/My Résumé 2026.pdf
%20 is a space, and %C3%A9 is the two UTF-8 bytes of é.
A redirect link
- Mode: Decode
https://www.example.com/url?q=https%3A%2F%2Fshop.example.net%2Fitem%3Fid%3D7%26color%3Dblue&sa=D
https://www.example.com/url?q=https://shop.example.net/item?id=7&color=blue&sa=D
The q parameter holds a whole link. The notes list it as one value, even though it contains its own ? and &.
Encoded twice
- Mode: Decode
hello%2520world%2521
hello world!
The % of %20 was itself encoded as %25, so the text is decoded twice.
Text for a link parameter
- Mode: Encode
- Encode: Text or a parameter value
Tom & Jerry: 50% off?
Tom%20%26%20Jerry%3A%2050%25%20off%3F
Every character except letters, digits and - _ . ~ becomes a % code, so & and ? can’t break the link.
A whole link
- Mode: Encode
- Encode: Whole link
https://example.com/a path/café?q=red shoes
https://example.com/a%20path/caf%C3%A9?q=red%20shoes
The link keeps its / ? and = and only the spaces and é are encoded.
How it works
A link may only contain letters, digits and a few symbols. Everything else is written as % and two hex digits: the character’s bytes in UTF-8. Decoding turns those codes back into text; encoding does the reverse. Both run in your browser, so links with private data never leave your device.
| Code | Character | Code | Character |
|---|---|---|---|
%20 |
space | %3F |
? |
%2F |
/ | %3D |
= |
%26 |
& | %23 |
# |
%3A |
: | %25 |
% |
%2B |
+ | %C3%A9 |
é |
Decoding
- Runs of codes are read together, so
%C3%A9becomes é and%F0%9F%98%80becomes 😀. - + becomes a space, as in form data and search queries. Turn off Read + as a space when the plus signs are real, for example in a path or a phone number.
- Text encoded twice is decoded twice.
%2520is a%20whose % was encoded again. The decoder peels off up to five layers and says how many it found. Turn it off if your text really contains codes, like a guide that explains%20. - Broken codes stay as they are. A % followed by something other than two hex digits, like
%zzor a lone%, is left in place and listed. - Old encodings are recognized.
%E9alone isn’t valid UTF-8, so it’s read as Windows-1252, where it’s é.
When the result is a link, the notes under it list the site, the path and each parameter with its decoded value. A parameter that holds a whole link, as in redirect and tracking links, is shown in one piece, even though it contains its own ? and &.
Encoding
| Choose | Encodes | Keeps | Use it for |
|---|---|---|---|
| Text or a parameter value | Everything else | Letters, digits, - _ . ~ | A search term, a file name, a value after = |
| Form data (spaces as +) | The same, but spaces become + | Letters, digits, - _ . ~ | Query strings, the way web forms send them |
| Whole link | Spaces and characters that can’t be in a link | : / ? # [ ] @ ! $ & ’ ( ) * + , ; = and existing codes | A link someone typed with spaces or accents |
Whole link encodes each line on its own, so you can paste several links, one per line, and codes already in a link aren’t encoded twice.
Questions
How do I decode a URL?
Paste it above with Decode selected. Codes like %20 turn back into the characters they stand for, and the notes under the result list the link’s site, path and every parameter, each decoded. Nothing is sent anywhere.
What does %20 mean in a URL?
A space. Links can’t contain spaces and some other characters, so they’re written as % and the character’s code in hex: %20 is a space, %2F a slash, %3F a question mark and %26 an ampersand. Letters like é take two or more codes (%C3%A9) because they’re encoded as UTF-8 bytes.
What is the difference between %20 and + in a URL?
Both can stand for a space. %20 works everywhere in a link; + means a space only in the query (after the ?), the way web forms send it. In the path, + is a plus sign. The decoder reads + as a space by default; turn that off for links with real plus signs.
Why does my link have %2520 in it?
It was encoded twice: the % of %20 was encoded again as %25, giving %2520. The decoder peels off every layer, so %2520 becomes a space, and the notes say how many times the text was encoded.
Should I encode a whole URL or just part of it?
Usually just the part you add to a link, like a search term or a file name: Text or a parameter value encodes everything except letters, digits and - _ . ~. Whole link keeps the characters that give a link its structure (: / ? # & =) and encodes only spaces and characters that can’t appear in a link.
How do I URL-encode in JavaScript, Python or Excel?
JavaScript: encodeURIComponent(text) for a part and encodeURI(link) for a whole link, decodeURIComponent to decode. Python: urllib.parse.quote and unquote. Excel: =ENCODEURL(A1). Note that encodeURIComponent leaves ! ' ( ) * as they are, while this tool encodes them too.
Related tools
- Base64 Decode and Encode Decode Base64 to text, images or files, or encode text.
- JSON Formatter Format, validate and repair JSON, with the exact line of every error.
- HTML to Text Strip HTML tags and keep paragraphs, lists and links.
- DNS Lookup Check A, MX, TXT and other records, with plain-English fixes.
Updated October 23, 2026 · Works in current Chrome, Edge, Firefox and Safari · Runs entirely in your browser