URLs can only safely contain a limited set of characters — letters, digits, and a small handful of punctuation marks — which means spaces, special characters, and non-Latin text all need to be encoded into a URL-safe format before they can travel reliably through a link, query string, or API request. This tool encodes and decodes URLs instantly, entirely in your browser, with nothing you paste ever sent to a server.

Why URL encoding exists

A raw space in a URL, a special character like & or ? used somewhere other than its reserved purpose, or non-Latin characters can all break a link or cause a server to misinterpret where one part of the URL ends and another begins. URL encoding (also called percent-encoding) replaces problematic characters with a percent sign followed by their hexadecimal code — a space becomes %20, for instance — producing a string that's guaranteed to travel safely through any URL-handling system.

How to use it

  1. Paste text or an existing URL into the input.
  2. Choose whether to encode (convert special characters to percent-encoded form) or decode (convert percent-encoded text back to readable form).
  3. Copy the result instantly.

Common situations where this matters

Frequently asked questions

What's the difference between encoding a full URL versus a URL component? Encoding a full URL leaves structural characters like :, /, and ? untouched since they define the URL's structure; encoding a single component (like a query parameter value) encodes those characters too, since they'd otherwise be misinterpreted as part of the URL's structure rather than as data.

Why do I sometimes see a plus sign instead of %20 for spaces? Some encoding contexts (particularly form submissions) use + for spaces instead of %20 — both are valid depending on context, and this is a common source of confusion when debugging.

Is my data uploaded anywhere? No — encoding and decoding happen entirely locally in your browser.

Can encoding break a URL that already works? Encoding characters that don't need encoding is generally harmless, but double-encoding an already-encoded URL (encoding it twice) can break it — check whether your input is already encoded before encoding it again.