URL Decoder & Encoder

Decode and encode URLs, unravel double-encoded links and inspect query parameters.

Input
Output
Runs locally · nothing is uploaded

Online URL decoder and encoder

Paste a URL or query string and get it back decoded and readable. This URL decoder is built for real-world links: tracking and redirect URLs copied out of logs, query strings encoded twice, and form data with + for spaces. When the input is a URL, every part and query parameter is listed decoded, each with its own Copy button.

Features

How to decode a URL

  1. Choose Decode and paste a URL or query string into Input.
  2. The decoded text appears in Output as you type, with the URL parts and query parameters below it.
  3. Turn on '+' as space for form data, and Decode repeatedly for double-encoded links.
  4. Click Copy, or press Ctrl/⌘ + Shift + C. Press Ctrl/⌘ + Enter to switch between Decode and Encode.

Component or Full URL?

InputComponentFull URL
a ba%20ba%20b
a/b?c=d&ea%2Fb%3Fc%3Dd%26ea/b?c=d&e
cafécaf%C3%A9caf%C3%A9
https://x.com/?q=1https%3A%2F%2Fx.com%2F%3Fq%3D1https://x.com/?q=1

Use Component for a value you are putting inside a URL, such as a query parameter or a redirect target. Use Full URL to make a whole URL safe without changing its structure.

Frequently asked questions

What is URL encoding?

URL encoding, also called percent-encoding, replaces characters that are not allowed in a URL with a % followed by two hex digits, so a space becomes %20 and é becomes %C3%A9. URL decoding turns them back into the original text.

What is the difference between Component and Full URL encoding?

Component encoding (encodeURIComponent) also encodes characters with a meaning in URLs, such as / ? & = and #, so use it for a single query parameter value. Full URL encoding (encodeURI) keeps those characters so the URL still works, and only encodes characters such as spaces and non-ASCII text.

How do I decode a double-encoded URL?

Turn on Decode repeatedly. The decoder keeps decoding while valid escapes remain, so %2520 becomes %20 and then a space. The status bar shows how many passes were needed.

Should + be decoded as a space?

Only in form encoding (application/x-www-form-urlencoded), which HTML forms and most query strings use. Turn on '+' as space for those. In other parts of a URL, such as the path, + is a literal plus sign.

What happens to invalid escapes such as %zz?

They are kept exactly as written instead of failing the whole decode, and highlighted in the input so you can find them.

Is my data safe?

Yes. Decoding and encoding run in your browser. Nothing you paste is sent to a server or stored.