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.
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.
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.
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.
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.