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.