URL Encode & Decode

Decode and encode URLs as you type, catch double encoding and broken % codes, and break any link into parts with query parameters you can edit.

Everything runs in your browser. Nothing you paste is uploaded or saved.

Text with spaces and symbols becoming a safe, percent-encoded string.
Illustration with sample values.
  1. Paste a URL or some text
  2. Encode or decode as you type
  3. Copy the result
Direction
Mode

Options

Pick Windows-1252 only for old links where a single code such as %E9 stands for é.

How it works

Text with spaces and symbols becoming a safe, percent-encoded string.
Illustration with sample values.
  1. Paste a URL or some text
  2. Encode or decode as you type
  3. Copy the result

What the URL Encode & Decode tool does

To URL decode text is to turn percent-encoded characters such as caf%C3%A9%20au%20lait back into readable ones (café au lait); URL encoding does the reverse, so spaces, accents and symbols can travel safely inside a web address. This tool does both as you type, in four modes that match JavaScript and HTML forms. It warns when a link was encoded twice, points to broken % codes instead of failing, and breaks any URL into its parts with a query parameter table you can edit.

  • Input: encoded or plain text, a full URL, a query string, or many values with one per line.
  • Output: the decoded or encoded text, a breakdown of the URL, a rebuilt URL, or the parameters as JSON.
  • Works with: UTF-8, the web standard, and Windows-1252 for older links. Up to 2 million characters.
  • Privacy: everything happens in your browser. Nothing you paste is uploaded or saved.

How to URL decode a link or text

  1. To URL decode a link, choose Decode and paste the encoded link or text into the input box.
  2. Pick a mode: Component for most text, Form data when + stands for a space, or Full URL to keep encoded punctuation such as %2F as it is.
  3. Read the result in the output box. If it still contains codes such as %20, the tool tells you it was encoded more than once: click Decode again.
  4. If a code is broken, click its line and column to jump to it in your text.
  5. Copy or download the result, or press Ctrl+Enter (Cmd+Enter on a Mac). To encode, choose Encode or click Swap.

What is URL encoding (percent encoding)?

A URL may only contain a limited set of ASCII characters. Percent encoding writes any other byte as % followed by two hexadecimal digits: a space becomes %20, & becomes %26, and é becomes %C3%A9, its two bytes in UTF-8. RFC 3986, the URI standard, never requires letters, digits or - . _ ~ to be encoded. It reserves : / ? # [ ] @ ! $ & ' ( ) * + , ; = as delimiters, so they must be encoded when they are part of a value rather than a delimiter.

CharacterEncodedWhy it is encoded
space%20, or + in form dataSpaces are not allowed in a URL
%%25Starts every code, so a real percent sign needs its own
&%26Separates query parameters
=%3DSeparates a parameter name from its value
+%2BMeans a space in form data
/%2FSeparates path segments
?%3FStarts the query string
#%23Starts the fragment
é%C3%A9Non-ASCII characters are sent as UTF-8 bytes
€%E2%82%ACThree UTF-8 bytes, so three codes

encodeURIComponent, encodeURI and form encoding compared

The four modes differ in which characters they leave alone and how they write a space.

ModeSame asLeaves as it isSpace becomesUse it for
ComponentencodeURIComponentletters, digits and - _ . ! ~ * ' ( )%20One value, such as a search term or a redirect address
Full URLencodeURIthe same, plus ; , / ? : @ & = + $ #%20A whole URL that must keep working
Form dataURLSearchParams and HTML formsletters, digits and * - . _+Form posts and query strings
Every characternothing built innothing%20Testing

In other languages, PHP rawurlencode and Python quote follow RFC 3986 and write a space as %20 (Python quote leaves / alone by default). PHP urlencode, Python quote_plus and Java URLEncoder.encode use form encoding, so a space becomes +.

Why does my URL have %25 in it? Double encoding explained

%25 is the encoded percent sign. When text that is already encoded is encoded again, every % turns into %25, so a space shows up as %2520 instead of %20. RFC 3986 tells software not to encode or decode the same string more than once for this reason. When a URL decode result still decodes cleanly, the tool offers Decode again, or every layer at once. To encode a partly encoded URL safely, tick Leave existing %XX codes alone under Options.

Query string parser and URL breakdown

Open URL breakdown and paste a link or a query string such as a=1&b=2 to see the scheme, the host, the port, each path segment decoded, and the fragment. An internationalised domain is shown in Unicode and as the punycode that DNS uses, for example bücher.example and xn--bcher-kva.example. If a domain mixes Latin, Cyrillic or Greek letters, a common trick in lookalike links, you get a warning.

Query parameters appear in a table, decoded, in their original order and with repeated names kept: tag=a&tag=b is two values to most servers. Edit, add, remove, reorder or sort them, then copy the rebuilt URL or the parameters as JSON. Parameters you did not touch keep their original encoding. Tracking parameters such as utm_source, gclid and fbclid go in one click. To create tagged campaign links, use the UTM Builder.

Frequently asked questions

What does URL decode mean?

URL decoding converts percent-encoded sequences such as %20 and %C3%A9 back into the characters they stand for, here a space and é. It reverses URL encoding.

What does %20 mean in a URL?

%20 is an encoded space: 20 is the hexadecimal code of the space character. In query strings and form data a space can also be written as +.

Should spaces be encoded as %20 or +?

A + means a space only in form data, such as HTML form posts and most query strings. %20 means a space everywhere, so it is the safe choice.

What is the difference between encodeURI and encodeURIComponent?

encodeURI encodes a whole URL and leaves characters with a special meaning, such as / ? # & and =, untouched. encodeURIComponent encodes those too, so use it for a single value you put inside a URL.

Why do I get URIError: URI malformed when I URL decode?

The text contains a % that is not followed by two hexadecimal digits, or codes that are not valid UTF-8, such as %E9 on its own. Firefox calls it a malformed URI sequence. This tool decodes the rest and shows where each bad code is.

Is URL encoding the same as encryption?

No. URL encoding only changes how characters are written so they are safe in a link. Anyone can decode it, so never use it to hide passwords, tokens or personal data.

Which characters never need to be encoded in a URL?

Letters, digits and the four symbols – . _ ~ never need encoding, according to RFC 3986. Reserved characters such as & and = are encoded inside a value, and a space or é is always encoded.

Is my data uploaded?

No. Everything runs in your browser, and the text you paste is not sent anywhere or stored. Only your settings, such as the mode, are remembered on this device.

Built and maintained by the GradientCo team. Last updated 7 October 2026. Found a problem? Tell us.