Everything runs on your machine — your file is processed right here in your browser and never uploaded to any server.
InputText
Loading...
OutputText
Loading...

About this tool

This tool reverses percent-encoding: paste a URL or an encoded fragment into the left editor and every %XX sequence is translated back into its original character in the right editor as you type. Multi-byte UTF-8 sequences are reassembled correctly, so international text and emoji come back intact, and malformed input — like a stray % with no hex digits after it — produces a clear error instead of silent corruption.

Encoded URLs are everywhere once you start looking: query strings in server logs and analytics exports, tracking links in marketing e-mails, redirect parameters nested inside other URLs, and webhook payloads. Decoding them by eye is error-prone, and a live decoder lets you paste, read, and edit until the address makes sense. The toolbar dropdown mirrors the encoder, letting you choose between component and full-URI decoding.

How to use

  1. Paste the encoded text or URL into the left editor, or open it with Load File.
  2. Choose component or full URI from the toolbar dropdown, depending on whether you are decoding a single value or a whole address.
  3. Read the decoded result in the right editor; it updates on every keystroke, and invalid sequences are flagged with an error message.
  4. Use Copy or Download to take the result with you, and Clear to empty both editors.

Query strings routinely carry search terms, user IDs, and campaign data, so this decoder is built to keep them private: the conversion happens inside the browser on your machine and the text is never handed to a server of any kind. Refreshing or closing the page discards your input completely.

Frequently asked questions

Why isn't + decoded into a space?

The plus-sign-for-space rule comes from HTML form encoding (application/x-www-form-urlencoded), not from the URI standard, where + is a literal plus character. If your data came from a form submission, replace each + with %20 before decoding.

What kind of input causes an error?

A % that is not followed by two hexadecimal digits, or a run of escaped bytes that does not form valid UTF-8, cannot be decoded. Both usually mean the string was truncated, edited by hand, or was never percent-encoded in the first place.

Does the mode dropdown matter when decoding?

Yes. Component mode decodes every escape sequence it finds, while full URI mode leaves escapes of reserved characters such as %26 (&) and %3F (?) untouched, so a complete URL keeps its structure unambiguous after decoding.