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.

Mode

How to use URL Decode and Encode

  1. Paste a link or text with % codes. The decoded text appears as you type.
  2. Read the notes under the result: a link is split into its site, path and each parameter, with values decoded.
  3. If + signs should stay plus signs, turn off Read + as a space under Options.
  4. 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.
  5. Copy the result. Nothing you paste leaves your device.

Examples

A file name with spaces and accents

Settings
  • Mode: Decode
Input
https://example.com/files/My%20R%C3%A9sum%C3%A9%202026.pdf
Result
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

Settings
  • Mode: Decode
Input
https://www.example.com/url?q=https%3A%2F%2Fshop.example.net%2Fitem%3Fid%3D7%26color%3Dblue&sa=D
Result
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

Settings
  • Mode: Decode
Input
hello%2520world%2521
Result
hello world!

The % of %20 was itself encoded as %25, so the text is decoded twice.

Text for a link parameter

Settings
  • Mode: Encode
  • Encode: Text or a parameter value
Input
Tom & Jerry: 50% off?
Result
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

Settings
  • Mode: Encode
  • Encode: Whole link
Input
https://example.com/a path/café?q=red shoes
Result
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%A9 becomes é and %F0%9F%98%80 becomes 😀.
  • + 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. %2520 is a %20 whose % 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 %zz or a lone %, is left in place and listed.
  • Old encodings are recognized. %E9 alone 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.

Updated October 23, 2026 · Works in current Chrome, Edge, Firefox and Safari · Runs entirely in your browser