Skip to content
Tooletto

URL Decoder

A preset of URL Encoder & Decoder

Turn a percent-encoded URL back into readable text. Useful for reading tracking links, decoding a redirect parameter, or working out what a logged URL actually pointed at.

  • Files never leave your device
  • Free, no signup
  • No watermarks
  • Works offline once loaded
Loading tool…

How to url encoder & decoder

  1. 1

    Choose a direction

    Encode text for a URL, or decode an encoded URL back to text.

  2. 2

    Pick the mode

    Component mode escapes everything; full-URL mode preserves the structure.

  3. 3

    Copy the result

    Results update as you type.

What a decoded URL parameter actually reveals

A marketing tracking link, a redirect parameter, or a URL captured from a server log commonly arrives as a long string of percent-escapes that is unreadable at a glance — decoding it reveals the actual destination, search term, or data the link is carrying, which is often the fastest way to understand what a suspicious or unfamiliar link actually does before clicking it, or to reconstruct what a user searched for from a logged request URL.

Reading multi-byte Unicode escapes correctly

A single accented character or emoji encoded into a URL frequently produces several consecutive percent-escapes rather than one — é becomes `%C3%A9`, two escaped bytes representing its UTF-8 encoding, and an emoji can produce four. Decoding correctly means recombining those multi-byte UTF-8 sequences back into the single character they represent, rather than naively converting each `%XX` escape into its own separate character, which would produce mangled, unreadable output for anything outside the basic ASCII range.

Handling both space conventions when decoding

Because a real URL captured from a log, an email link, or a browser address bar might use either the standard `%20` or the older form-encoding `+` to represent a space, this tool checks for and correctly converts both back into a literal space rather than only recognising one — pasting a query string that used `+` separators does not require converting it to `%20` first just to get a readable result.

Frequently asked questions

What is the difference between component and full-URL mode?

Component mode (`encodeURIComponent`) escapes everything including / ? & = #, which is what you want for a single query-parameter value. Full-URL mode (`encodeURI`) leaves those structural characters intact so an entire address stays usable. Using the wrong one is the most common URL-encoding bug.

Why did my URL break when I encoded the whole thing?

You almost certainly used component mode on a complete URL, which escaped the `://` and the `&` separators. Encode each parameter *value* individually, then assemble the URL — do not encode the assembled result.

Why does a space sometimes become %20 and sometimes +?

Percent-encoding uses %20. The `+` form comes from the older HTML form encoding (`application/x-www-form-urlencoded`) and is only valid in a query string, never in a path. This tool produces %20, and decodes both.

How are emoji and non-English characters handled?

They are encoded as UTF-8 bytes, so é becomes %C3%A9 and an emoji becomes four percent-escapes. That is the correct behaviour and round-trips exactly.