Decode a URL or percent-encoded text
Turn %XX percent-encoding back into readable text in your browser. Optional + as space for form values, honest errors on broken escapes — nothing uploaded.
Paste percent-encoded text and read it: %20 back to spaces, %E4%B8%AD back to 中, whole mangled query strings back to human form. UTF-8 sequences are decoded the way browsers do, so multi-byte characters come back as characters, not as Latin-1 soup.
Form mode is one checkbox away: tick Treat + as space and application/x-www-form-urlencoded values (the ones from mailto links and old form bodies) decode properly, while unticked, a literal + stays a + — the right behaviour for URL fragments where + is a real plus.
A broken escape — a % that isn't followed by two hex digits — gets a precise error message instead of silent garbage, so you can see at a glance whether the string was double-encoded or truncated. Decoding runs entirely in your browser.
Frequently asked questions
- When should I tick Treat + as space?
- When decoding form submissions and other application/x-www-form-urlencoded data, where + means space. For path segments and fragments, leave it off — there a + is usually a literal plus sign.
- The text still looks encoded after decoding — why?
- It's probably double-encoded (%2520 decodes once to %20). Decode again; if it never resolves, the source encoded it wrong.
- What does the broken-escape error mean?
- A % appeared without two hex digits after it — the string was truncated or cut mid-escape. Every % must pair with exactly two hex digits like %2F.