URL Encoder / Decoder
Encode or decode a URL or any text instantly, with component, full-URL, and form encoding modes.
About this tool
What this URL encoder/decoder does
URLs can only safely contain a limited set of characters, so anything else — spaces, accented letters, symbols like & or # — gets percent-encoded (turned into things like %20 or %C3%A9) before it's safe to put in a query string, path segment, or form submission. This tool converts text in either direction, and lets you pick the encoding mode that actually matches what you're building, since "encode a URL" means slightly different things depending on the context.
How to use it
- Pick a mode: Component for a single value going into a query string parameter (encodes everything including &, =, and /); Full URL for encoding an entire URL while leaving its structural characters like / and ? alone; or Form for the application/x-www-form-urlencoded style used by HTML form submissions, where spaces become + instead of %20.
- Type or paste into either box — the plain text side encodes into the encoded side, and typing into the encoded side decodes back automatically.
- Use the Copy buttons to grab either version straight to your clipboard.
Real-world use cases
Building a query string parameter by hand and needing to make sure a space or an ampersand inside the value won't break the URL. Decoding a long, unreadable %-encoded string from a browser address bar or server log back into plain text to see what it actually says. Preparing form-encoded data for an API request that expects x-www-form-urlencoded formatting instead of standard percent-encoding.
Frequently asked questions
What's the difference between encodeURI and encodeURIComponent?
encodeURI (the "Full URL" mode here) is meant for encoding a complete, already-structured URL, so it leaves characters like / ? & = # alone. encodeURIComponent (the "Component" mode) is meant for a single piece of data that's going to become part of a URL, so it encodes those same characters too, since a raw & or = inside a value would otherwise be misread as part of the URL's structure.
Why do some encoded URLs use + for spaces and others use %20?
Both are valid, but in different contexts. %20 is the standard percent-encoding for a space and works everywhere. + specifically means "space" only inside application/x-www-form-urlencoded data (the format browsers use for HTML form submissions and query strings built from forms) — that's what the Form mode replicates.
Is URL encoding the same thing as Base64 encoding?
No. URL encoding (percent-encoding) replaces unsafe characters with a % followed by their hex code, one character at a time, and the result is still mostly readable. Base64 re-encodes the entire input into a different alphabet and isn't readable at all — it's built for embedding binary data as text, not for making a URL safe.
What happens if I try to decode text that isn't actually encoded?
If it contains no % sequences, decoding just returns it unchanged. If it contains a malformed % sequence (like a stray % not followed by two valid hex digits), the tool shows a warning instead of guessing.
