URL encode/decode

0 uploads — runs entirely in your browser, works offline

Result

Encode and decode URLs, privately

Percent-encode text so it's safe to drop into a URL — or decode %XX sequences back into readable text — for a whole link or just one query-string value. Everything runs on your device: 0 uploads, works offline, so the strings you paste (tokens, search terms, redirect URLs) never touch a server.

How to use it

  1. Paste your text or URL into the input box.
  2. Pick Encode to make it URL-safe, or Decode to turn %XX back into readable characters.
  3. Choose the scope: Component (default) escapes everything including &, / and ? — right for a single query value; Full URL preserves the characters that separate a URL, so a whole link stays valid.
  4. The result updates live. Copy the output, or flip Encode/Decode to round-trip and check it.

FAQ

How do I URL-encode a string online?

Paste the text, keep the mode on Encode, and the URL-safe version appears instantly. Because it runs entirely in your browser, nothing is uploaded and there's no sign-up — it even works with your Wi-Fi off. Use Component scope for a value you'll put after = in a query string, like a search term or a redirect URL.

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

Component (encodeURIComponent) escapes reserved characters like &, /, ? and =, so the value can't break the URL around it — use it for one query-string value. Full URL (encodeURI) leaves those separators intact so an entire address stays valid and clickable. Decoding mirrors the same two scopes.

Why do I get "That isn't valid percent-encoded text"?

Decoding needs every % to be followed by two hex digits (a valid %XX). A stray %, a truncated sequence like %E0%A4, or non-hex characters after a % will trip it — fix or remove the offending % and decode again.

Does it handle emoji and non-English text?

Yes. Unicode such as नमस्ते or an emoji is encoded as its UTF-8 percent bytes and decoded back exactly, so round-tripping is lossless. Everything is processed locally, so even long or sensitive strings stay on your device.

Limits

Encodes and decodes with the standard encodeURIComponent/encodeURI (and their decode pairs) — the same rules browsers use. It doesn't split a URL into parts, build query strings from key–value pairs, or Base64-encode; it's percent-encoding only. Malformed % sequences are reported, never guessed at.

Related

Pairs well with the JSON formatter and JWT decoder for inspecting API payloads once you've decoded a value.

Bookmark this page (Ctrl+D, or ⌘D on Mac) or install the app — it works offline the next time you need it.