URL Encode / Decode

Percent-encode text for safe URLs or decode %xx strings back to readable text — component and full-URL modes.

🔒 100% private — files are processed on your device and never uploaded to any server.

Why URLs are full of %20 — and how to speak it fluently

URLs permit a startlingly small set of characters, and everything else — spaces, quotes, ampersands, every non-English letter — must travel as percent-encoding: a % followed by the character's byte value in hex. Space becomes %20, ş becomes %C5%9F, and a search query like fish & chips must become fish%20%26%20chips or the & silently splits your parameter in half. This tool encodes and decodes both directions, with the one distinction that prevents 90% of URL bugs: component mode versus full-URL mode.

How to encode or decode

  1. Paste your text or URL fragment.
  2. Choose the mode — Component for values going into a URL, Full URL for a complete address.
  3. Click Encode or Decode; copy the result.

Component vs full URL: the distinction that matters

Component mode encodes aggressively — including /, ?, &, = and : — because when text is a parameter value, those characters are data, not structure: an unencoded & inside a value terminates it and spawns a phantom parameter. Use it for query values, path segments, anything user-supplied. Full URL mode encodes gently, preserving the structural characters so a complete address keeps working — use it to clean a whole URL that contains spaces or non-ASCII letters. The classic bug is using the gentle mode on a value: search for “profit & loss”, watch “loss” vanish into a phantom parameter. When unsure, you almost always want Component.

Decoding: reading the matrix

Decode mode turns %xx soup back into human text — indispensable for reading analytics exports, log files, referrer URLs and links copied from address bars (browsers display pretty URLs but copy encoded ones). The decoder also converts + to space, honouring the legacy form-encoding convention still used in query strings everywhere. Malformed sequences (a stray % not followed by valid hex) produce a clear error instead of silent corruption.

Daily encounters

  • Building links by hand: mailto subjects, WhatsApp share texts, pre-filled form URLs — every value needs component encoding.
  • UTM hygiene: campaign names with spaces must be encoded (or better, avoided — our UTM Builder handles this automatically).
  • Debugging webhooks/APIs: decode the query string to see what was actually sent.
  • De-uglifying shared links: decode, read, trim the junk, re-encode.

Encode before sending, decode before reading — with the right mode, URLs stop eating your data.

Quick reference

PropertyDetail
ModesComponent (aggressive) / full URL (structure-safe)
EncodingUTF-8 percent-encoding (%20, %C5%9F…)
Decode extras+ treated as space (form convention)
ErrorsMalformed %-sequences reported clearly
Rule of thumbValues → Component; whole addresses → Full URL
Classic bug preventedUnencoded & splitting parameter values
Processing100% in-browser

Frequently asked questions

When do I use Component vs Full URL mode?

Component for any text going into a URL as a value — query parameters, path pieces, user input. Full URL only when encoding a complete address whose / ? & = structure must keep functioning. Unsure? Component is correct far more often.

Why did part of my parameter disappear after the & sign?

The & wasn't encoded, so the URL parser read it as “next parameter starts here”. Encode the value in Component mode — & becomes %26 and travels as data instead of structure.

What's the difference between %20 and + for spaces?

Both mean space: %20 is the universal percent-encoding; + is a legacy convention valid only in query strings. This tool encodes to %20 (always safe) and decodes both.

How do non-English characters get encoded?

As their UTF-8 bytes, each percent-encoded — ş becomes %C5%9F (two bytes). It looks verbose but decodes perfectly everywhere; that's the standard the whole modern web agreed on.