URL Encoder & Decoder
Encode text for safe use in a URL, or decode a URL-encoded string back to plain text. Runs entirely in your browser.
How it works
Encode converts text into percent-escapes using the browser's encodeURIComponent, so it can sit safely inside one part of a URL such as a query-string value: a space becomes %20 and é becomes %C3%A9. Decode reverses it with decodeURIComponent.
Example
Encoding a b&c=1/é gives a%20b%26c%3D1%2F%C3%A9. Because characters such as : / ? & and = are escaped too, encode individual values rather than a whole address — encoding https://example.com/a b would turn the :// into %3A%2F%2F and break the link.
Edge cases
A plus sign is not turned into a space when decoding (a+b stays a+b); only %20 becomes a space. Decoding fails with an error if the text contains a stray % that isn't followed by two hexadecimal digits, such as 100%. Letters, digits and the characters - _ . ! ~ * ' ( ) are never encoded.
Frequently asked questions
What's the difference from Base64 encoding?
URL encoding (percent-encoding) replaces unsafe characters with %XX codes so text can appear in a URL; Base64 is a different, general-purpose binary-to-text encoding used for other purposes, like embedding data.