🔗 URL Encoder / Decoder
Percent-encode text for use in URLs and query strings, or decode an encoded URL back to readable text — entirely in your browser.
Frequently Asked Questions
What is URL (percent) encoding?
URLs may only contain a limited set of ASCII characters. Percent encoding (RFC 3986) replaces every other character with % followed by its UTF-8 byte value in hex — a space becomes %20, & becomes %26, and ₹ becomes %E2%82%B9. Browsers and servers decode these back automatically.
When should I use Component mode vs Full URL mode?
Use Component mode (encodeURIComponent) when encoding a single value that goes inside a URL — a query-string parameter, a path segment, a redirect target. It encodes reserved characters like :, /, ? and & so they can't break the URL structure. Use Full URL mode (encodeURI) only when you have a complete URL that just needs spaces or non-ASCII characters fixed — it deliberately leaves the structural characters alone.
Why is a space sometimes + instead of %20?
The older application/x-www-form-urlencoded format (HTML form submissions) encodes spaces as +. Modern percent encoding uses %20. This tool encodes spaces as %20; when decoding, %20 always works, but a + is left as a literal plus per RFC 3986 — replace + with a space first if your input came from a form submission.
Why do I get an error when decoding?
A % in the input must be followed by exactly two hex digits. "50% off" fails to decode because %20o isn't the issue — the lone "% o" is malformed. Encode literal percent signs as %25 first.
Does this handle Unicode text like Hindi or emoji?
Yes. Non-ASCII characters are encoded as their UTF-8 byte sequences (e.g. नमस्ते → %E0%A4%A8%E0%A4%AE...), and decoding converts them back — matching how every modern browser and server handles international text in URLs.
Is my URL sent anywhere?
No. Encoding and decoding use JavaScript's built-in functions locally in your browser — nothing is uploaded, so it's safe for URLs containing tokens or internal hostnames.