URL Encoder & Decoder

Encode and decode URLs and query parameters online. Splits any URL into its parameters. Runs in your browser, nothing uploaded.

All processing happens in your browser. Nothing is uploaded.

Component escapes everything; Whole URL keeps : / ? # & = intact

How to use

  1. Choose Encode or Decode.
  2. Choose Component for a single value, or Whole URL for a complete address.
  3. Paste your text. The result updates as you type.
  4. If the input contains a query string, its parameters are listed below, already decoded.

That parameter table is the part you will probably use most: paste a long API URL and read what it actually carries, without counting ampersands by hand.

About percent-encoding

A URL may only contain a restricted set of ASCII characters. Everything else — spaces, Chinese characters, emoji, and the reserved punctuation that gives a URL its structure — has to be represented as % followed by the two hexadecimal digits of each byte. This is why 你好 becomes %E4%BD%A0%E5%A5%BD: six bytes of UTF-8, six escapes.

The distinction that trips people up is what needs escaping, and it depends entirely on where the text is going. Inside a parameter value, & must be escaped, or it will be read as the start of the next parameter. In the URL as a whole, that same & is exactly the separator you want to keep. There is no single correct answer — only the right choice for the position, which is why this tool makes you pick.

Note that encoding is not encryption or obfuscation. A percent-encoded string is trivially readable, and anything you put into a URL should be considered visible — URLs end up in browser history, server access logs, and the Referer header sent to third parties.

Frequently asked questions

What is the difference between the two modes?

Component mode escapes every reserved character, including : / ? # & =. Use it for a single value you are putting into a query string. Whole URL mode leaves those structural characters alone, so a complete address survives intact. Using the wrong one is the usual cause of a broken link — component-encoding a full URL turns :// into %3A%2F%2F.

Why does my decoded text show strange characters?

Percent-encoding carries bytes, not characters. If the original was encoded as something other than UTF-8 — legacy systems sometimes used GBK or Latin-1 — decoding it as UTF-8 produces mojibake. This tool always decodes as UTF-8, which is what every modern system uses.

Why did decoding fail with an error?

A percent sign must be followed by two hexadecimal digits. Strings like 100% or %ZZ are not valid percent-encoding, and the browser refuses to guess. Encode the literal percent sign as %25.

Are spaces encoded as %20 or +?

This tool always produces %20, which is correct everywhere in a URL. The + convention only applies inside query strings and comes from HTML form submission. When reading a query string apart, this tool does interpret + as a space, because that is what servers do.

Is my data sent anywhere?

No. Everything runs in your browser, which matters here because URLs frequently contain API keys, session tokens and other credentials.