Read the URL your browser is hiding from you
You copied a link from the address bar and got https://example.com/search?q=caf%C3%A9%20latte%20%26%20pastry. What you actually searched for was “cafe latte & pastry.” All those %XX sequences are percent-encoding, the way URLs represent characters that aren’t allowed in their raw form.
Paste the encoded URL or string, click decode, and %20 becomes a space, %26 becomes &, %C3%A9 becomes e with an accent. Full Unicode support, including multi-byte UTF-8 sequences and emojis.
The percent codes you’ll see most
%20, space (the most common)
%26, &
%3D, =
%3F, ?
%2F, /
%23, #
%40, @
%2B, +
%25, % (the percent sign itself)
Real scenarios
Query parameter inspection. You grab a URL from your browser’s network tab and the parameters are encoded. Decoding shows you exactly what values were sent.
Marketing/tracking URLs. UTM links and analytics redirects pile up encoded parameters. Decoding reveals the full redirect chain and tracking values.
OAuth debugging. Callback URLs in OAuth flows contain encoded redirect URIs, scopes, and state parameters. Decoding is the first step to verifying the flow.
Server logs. Access logs record URLs in encoded form. Decoding tells you what resources were actually requested.
Double-encoded URLs. Sometimes a URL gets encoded twice (a %20 becomes %2520). Run the decoder twice to fully unwrap it.
A note about the + sign
In standard URL encoding, + is just a literal plus sign. In application/x-www-form-urlencoded format (HTML form submissions), + represents a space. This tool uses decodeURIComponent, which treats + as a literal. If your encoded string uses + for spaces, replace them with %20 before decoding.
For encoding text into URL-safe format, use the URL Encoder. To break a URL into its components, try the URL Parser.
FAQ
Full URLs or just values?
Both work. Paste an entire URL and all percent-encoded sequences within it get decoded.
Double encoding?
Run the tool twice. First pass decodes %2520 to %20. Second pass decodes %20 to a space.
Malformed encoding?
You’ll get an error message if there’s an invalid percent sequence (like % followed by non-hex characters).
Client-side?
Yes, your URLs stay in your browser.