URL Decoder

Decode percent-encoded URLs back to readable text in your browser. For inspecting OAuth callbacks, deep links, or debug-parsing query strings.

url
encode
decode
uri
web
RFC 3986

About URL Decode

URL decoding reverses percent-encoding: every "%XX" sequence becomes the byte with hex value XX, and UTF-8 byte sequences reassemble into their original characters. This decoder uses decodeURIComponent, which handles the full RFC 3986 encoded-character set and decodes UTF-8 multi-byte sequences correctly. Typical decoding flow: you have a copy-pasted URL from a browser address bar where everything is percent-encoded and you want to read the actual parameters; you're inspecting an OAuth callback URL with a long state parameter and need to see what your app encoded into it; you're reading a log line with a URL and the non-ASCII characters are unreadable; you want to verify what a frontend sent by decoding the raw query string on the backend side. When decoding fails: malformed percent sequences (%ZZ where Z isn't a hex digit), truncated sequences (% at the end with no following digits), invalid UTF-8 byte sequences that can't reassemble into characters. The decoder will throw URIError, which is a signal the input isn't valid percent-encoding. Common cause: a URL that was encoded twice (double-encoding produces %25XX instead of %XX), which you fix by running the decoder twice.

Features

  • Encode special characters for safe URL transmission
  • Decode percent-encoded URLs back to readable text
  • Handle all special and unicode characters
  • Copy encoded or decoded output instantly

How to Use

  1. Paste your URL or text into the input field
  2. Select "Encode" or "Decode" mode
  3. View the result instantly
  4. Copy the output using the copy button

Frequently Asked Questions

Why am I getting URIError on valid-looking input?

Usually a stray % that isn't followed by two hex digits ("100%" would produce URIError on the trailing %), or an invalid UTF-8 byte sequence (%E9 alone isn't valid UTF-8, it needs continuation bytes). Trim the input to just the percent-encoded portion and try again.

What's double-encoding and how do I fix it?

Double-encoding is when a URL gets percent-encoded twice, producing strings like %2520 (which is %20 with its % re-encoded as %25). The fix is to decode twice. If you run the decoder once and the output still has %XX sequences in it, decode again. Three-times encoding is rare but possible.

Should I decode + as a space?

Depends on context. In query strings from HTML form submissions, + means space (application/x-www-form-urlencoded convention). In URL paths or fragments, + is a literal plus sign. decodeURIComponent treats + as literal; browsers handle the form-data form separately. If you're decoding a form submission, pre-replace + with space before decoding.

Can I decode a URL that came from an email?

Yes, but emails sometimes break long URLs across lines or insert soft-wrap markers (= at end of line in quoted-printable). Remove those first. Also check if the email client already decoded some characters — pasting a half-decoded URL into this tool will fail on sequences that are already plain text.