URL Encoder & Decoder

URL encoding is why 'cafรฉ & croissants' survives a query string: spaces become %20, the ampersand becomes %26 so it can't be misread as a separator, รฉ becomes %C3%A9. This tool does both directions with the distinction most tools skip - component mode (for values inside ?a=1&b=2, escaping & = ? /) versus full-URL mode (keeping the :// and separators that make a URL work), with the difference explained in the note as you type.

Decode mode is the reader for mystery links: paste a tracking URL or an encoded API parameter and see the human version instantly, with malformed sequences (% not followed by two hex digits) flagged precisely rather than decoding to garbage. The stats count the % sequences for you, and everything runs locally - your URLs, with their tokens and tracking parameters, stay on your device.

โ€“output
โ€“input chars
โ€“output chars
โ€“% sequences
Component mode encodes everything a query-string value must have encoded (& = ? / and spaces as %20); full-URL mode keeps the structure characters a URL needs. Runs locally.

How to use

  1. Pick encode or decode, then component or full-URL scope.
  2. Paste your text or URL - the result updates live with a length diff.
  3. Copy the output; malformed decodes explain exactly what broke.

Frequently asked questions

When should I use %20 versus + for spaces?

%20 is the encoding of a space in URLs and query strings (encodeURIComponent style, what this tool produces); + is the legacy application/x-www-form-urlencoded style from HTML form posts. Both decode to a space in practice, but %20 is the modern, always-safe choice - and what well-behaved APIs expect.

What is the difference between component and full-URL encoding?

Component encoding escapes structure characters (& = ? /) so a value cannot be mistaken for URL syntax - right for ?q=... values. Full-URL encoding (encodeURI) keeps :// ? & intact because they ARE the syntax - right when encoding a complete URL to embed as a parameter.

Why did my decode fail with a lone % sign?

Every % must be followed by exactly two hexadecimal digits. A bare percent - '50% off' pasted raw - is malformed; encode it first (%25) or remove it. The error note here pinpoints the rule rather than guessing.

Is URL encoding a form of encryption?

Not at all - it is reversible transport encoding, readable by anyone. It makes text safe to carry in a URL; it hides nothing. For secrecy you need TLS (automatic on https) and proper encryption, not percent-encoding.

Related tools