Skip to content
MixTool

URL decoder

Turn %20-filled URLs and encoded query strings back into readable text, with clear errors for broken escapes.

  • Runs entirely in your browser
  • Free · no sign-up
  • Works on phone and desktop
Loading tool…

Readable URLs and parameters

Tracking links, redirects and API logs are full of sequences like %3A%2F%2F and %E2%9C%93. Paste them here to decode every percent-escape back into the original characters, including multi-byte UTF-8 characters such as accented letters, Asian scripts and emoji.

Form submissions and many query strings use + for spaces, so the decoder treats + as a space by default (you can switch that off). If the input contains a malformed escape, like a % without two hex digits, you'll see exactly which one and where instead of a vague error.

How to decode a URL

  1. 1

    Paste the encoded text

    A full URL or just a parameter.

  2. 2

    Choose how to treat +

    As a space for form data and most query strings.

  3. 3

    Copy the decoded text

    Or swap to encode it again.

Key features

  • UTF-8 decoding

    Handles every language and emoji.

  • Plus-as-space option

    Matches form and query-string encoding.

  • Precise error messages

    Shows the broken escape and its position.

  • Line-by-line mode

    Decode lists of values at once.

Common uses

  • Reading tracking links: See where a redirect actually goes.
  • Debugging APIs: Read encoded parameters in server logs.
  • Checking email links: Decode the destination hidden in a click-tracking URL.

Tips and good to know

  • Some URLs are encoded twice (%2520). Decode, then decode the result again.
  • The URL Parser decodes every query parameter and shows them as an editable table.

Frequently asked questions

What does %20 mean in a URL?

It's an encoded space. The % is followed by the character's byte value in hexadecimal; 20 is the code for a space.

Why do I get a “malformed URI” error?

A % must be followed by two hexadecimal digits that form valid UTF-8. Stray % signs or truncated sequences cause the error, and the decoder shows where it is.

Is my data sent anywhere?

No. Decoding runs in your browser.