URL Encoder / Decoder

Percent-encode text for URLs or decode %-sequences back to readable text — live, UTF-8 safe, with a URL parts breakdown.

Live — output updates as you type

100% private — nothing you type leaves your browser.

Component vs Full-URL Encoding

The #1 URL-encoding bug is using the wrong mode. Component mode (JavaScript's encodeURIComponent) encodes everything special — including / ? & = # — so use it for a single value going into a query string. Full URL mode (encodeURI) leaves those structural characters alone so an entire URL keeps working.

Example: encoding a&b=c as a component gives a%26b%3Dc (safe as a value); full-URL mode leaves it unchanged (it looks like structure). If your query parameter contains & and you don't component-encode it, the server will split your value in half.

Decoding pairs well with our Base64 Encoder/Decoder (tokens are often Base64 inside URL encoding) and the JWT Decoder for auth debugging.

Common Characters and Their Encodings

CharacterEncodedNotes
space%20+ only in form-encoded query strings
&%26separates query parameters
=%3Dseparates key from value
?%3Fstarts the query string
#%23starts the fragment
/%2Fpath separator
%%25must itself be encoded
₹ (UTF-8)%E2%82%B9multi-byte characters use several %-pairs

Frequently Asked Questions

What is URL encoding (percent encoding)?
Replacing characters that aren't URL-safe with % plus their UTF-8 bytes in hex: space → %20, & → %26, ₹ → %E2%82%B9. It keeps URLs unambiguous.
encodeURI vs encodeURIComponent — which do I need?
Encoding one value for a query string → Component mode. Cleaning a whole URL without breaking its structure → Full URL mode. When unsure, you almost always want Component.
Why does a space sometimes become + instead of %20?
+ is the legacy HTML form (application/x-www-form-urlencoded) convention and only means a space inside form-encoded query strings. %20 is the standard everywhere else — use the form-style toggle if you need +.
Is my URL sent to a server?
No — the tool uses your browser's built-in functions locally, so URLs with tokens or private parameters are safe to paste.