DataFormatter

URL Decoder

Decode percent-encoded URLs and query strings online. Paste an encoded string into the live tool below and read it as plain text instantly — entirely browser-based, nothing uploaded.

About this tool

What is it?
DataFormatter URL Decoder is a free online tool that turns %20-style percent escapes back into readable text, including multi-byte emoji and accented characters.
Who is it for?
Developers auditing tracked links, debugging redirects or reading query strings that arrive percent-encoded in logs.
What makes DataFormatter's tool different?
It correctly decodes multi-byte sequences and runs fully in the browser — no upload, free and no signup.

Input

Paste or type JSON, Base64, or plain text…

Paste or click a sample above — it will be detected automatically.

Quick start

  1. Paste the encoded URL, query string or parameter above.
  2. The readable text appears instantly, escapes decoded in place.
  3. Copy the result — done.

How URL decoding works

Percent-encoding represents unsafe characters as %XX byte escapes. Decoding reverses this: each escape is turned back into its byte, and the byte sequence is decoded as UTF-8 text. Multi-byte characters such as emoji or accented letters are restored from their full escape sequence.

Encoded
search%3Fq%3Dhello%20world%20%26%20more
Decoded
search?q=hello world & more

How to decode a URL online

  • Paste the encoded URL, query string or parameter into the editor above.
  • The readable result appears instantly.
  • Copy the decoded text with one click.
  • Need to encode instead? Switch the toolbar to URL Encode.

What developers actually decode

Reading tracking & redirect links

Marketing links bury three layers of parameters inside each other. Decode layer by layer to see the true destination before clicking.

Debugging logged requests

Server logs store URLs encoded for safety. Decode them here to reconstruct what users and clients actually sent.

Untangling OAuth callbacks

Redirect URIs arrive double-encoded through several hops. Decoding reveals the state, code and error parameters your flow depends on.

Decoding errors explained

URIError: malformed URI sequence

Why: A stray percent sign followed by non-hex characters (100% done), or an escape cut in half when the string was split.

Fix: Encode bare percent signs as %25 first, or re-copy the complete encoded value including its final characters.

Output contains � replacement characters

Why: The escape sequence was valid but doesn't form complete UTF-8 — usually half of a multi-byte character got lost upstream.

Fix: Recover the original full string if possible; partial multi-byte sequences cannot be reconstructed faithfully.

Decoded text still looks encoded

Why: The value was double-encoded (%2520 decodes to %20 on the first pass).

Fix: Run the output through decoding again — repeat until nothing changes.

Pro tips

  • After decoding, drop the URL into the URL Parser to see scheme, host, path and each query component laid out separately.
  • Reading a token from a redirect? The JWT Decoder picks JWTs out of pasted text automatically.
  • Keep word wrap on — long encoded links become far easier to review when they wrap instead of scrolling.
  • Share a decoded link plus context with teammates via the Share button without leaving the page.

Decoder glossary

Mojibake
Garbled text produced when bytes are decoded using the wrong character encoding. This decoder avoids creating mojibake by strictly validating UTF-8 and erroring on sequences that don't fit.

Frequently asked questions

What does URL decoding do?

It converts percent escapes like %20 or %E2%9C%85 back into the characters they represent, turning machine-safe encoded URLs back into readable text.

Why does my decoded text look garbled?

The decoder interprets byte sequences as UTF-8. Input that was encoded from a different character set, or escapes that don't form valid UTF-8, will produce an error rather than mojibake.

Does it turn + into spaces?

No — this tool decodes percent-encoding only, matching decodeURIComponent. The '+' convention belongs to form encoding (application/x-www-form-urlencoded).

Why do I need to decode twice sometimes?

Double encoding happens when software escapes an already-escaped value (%2520 instead of %20). Decode repeatedly until the output stops changing — that's your original text.

Can it decode a full URL with many parameters at once?

Yes. Paste the whole query string; every escape is decoded in place so you can read all parameter values exactly as the server would see them.

Related tools