CompleteToolkit

URL Encoder / Decoder

Percent-encode text for URLs or decode %20-riddled strings back into readable text — live.

Result

About this tool

URLs can only contain a limited set of characters. Everything else — spaces, ampersands, question marks, currency symbols, non-English letters — must be percent-encoded: a space becomes %20, & becomes %26, ₹ becomes %E2%82%B9. When you see a link full of % signs, this is what's happening; when a query parameter breaks because someone pasted raw text into it, this is what didn't happen.

This tool converts both directions, live as you type. Decoding turns unreadable analytics URLs, log entries and webhook payloads back into plain text (it also treats + as a space, the convention in form-encoded query strings). Encoding prepares text for safe use in a URL — and here the tool makes the distinction that trips people up: by default it encodes in component mode, escaping everything including / ? & =, which is correct when you're encoding a value going inside a query string. Tick "encoding a full URL" and it switches to preserving URL structure characters, correct when you're cleaning up a complete address.

Use the wrong mode and you either break your query parameters or double-escape your URL — the toggle plus its explanation prevent both. As always: entirely local, nothing uploaded.

How to use the URL Encoder / Decoder

  1. 1Choose Encode or Decode.
  2. 2When encoding, leave the checkbox off for values going into a query string; tick it only when encoding a complete URL.
  3. 3Type or paste your text — the result updates live.
  4. 4Click Copy to use it.

Frequently asked questions

What's the difference between encoding a component and a full URL?

Component encoding (default) escapes every special character including / ? & = — correct for a value inside a query string. Full-URL encoding preserves those structural characters so the URL still works as a URL. Encoding a full address with component mode breaks it; encoding a query value with full-URL mode leaves dangerous characters unescaped.

Why does %20 mean space, and what about the + sign?

Percent-encoding represents each byte as % followed by its hexadecimal value — a space is byte 32, hex 20. In form-encoded query strings, + is an older alternative for space, which this decoder also understands and converts.

Why did I get a 'malformed input' error when decoding?

Your text contains a % sign not followed by two valid hex digits — often the result of a truncated URL or text that was never actually encoded. Find the stray % and the decode will succeed.

Does this handle non-English characters?

Yes. Modern percent-encoding is UTF-8 based, so Hindi, emoji and every other script encode and decode correctly — ₹500 becomes %E2%82%B9500 and back again.