DevTools Hub
All tools

URL Encoder and Decoder

Percent-encode and decode URLs, choose between encoding a single value or a whole address, and read any query string as a plain table.

Encode
Percent-encoding, both directions, updating as you type.

encodeURIComponent — escapes / ? : @ & = + $ #. Use for a single query value.

Result
Query parameters are broken out below, already decoded.

Base

https://example.com/search

ParameterValue
qhello world
langen
tagc

What the URL Encoder and Decoder does

  • Percent-encodes and decodes text in both directions as you type.
  • Offers both encoding scopes: one for a single value, one for a whole address.
  • Breaks a query string into a table of already-decoded parameters.
  • Reports invalid percent-escapes rather than failing silently.

What it doesn't do

  • It doesn't shorten URLs or follow redirects.
  • It doesn't validate whether a URL actually resolves.
  • It doesn't decode Base64 embedded inside a URL — use the Base64 tool for that.

Frequently asked questions

What's the difference between the two encoding scopes?

Encoding a component escapes the characters that carry structural meaning — slash, question mark, ampersand, equals and colon — which is what you want for a single query value. Encoding a whole URL leaves those intact so the address still works. Using the wrong one is the usual reason an encoded link breaks.

Why does a space become %20 sometimes and + at other times?

Percent-encoding uses %20 everywhere. The plus sign is a convention specific to HTML form submissions in query strings. This tool decodes + as a space when breaking down a query string, and emits %20 when encoding, which is safe in both contexts.

Why do I get "invalid percent-escape"?

A % must be followed by exactly two hexadecimal digits. A literal percent sign that was never encoded — as in "50% off" — will trigger this. Encode it as %25 first.

Related reading

Percent-encoding explained: why your URL breaksThe difference between encoding a whole URL and a single value, why spaces sometimes become + and sometimes %20, and how to fix a link that broke on encoding.1 September 2026 · 2 min read
See all encoding & conversion tools →