URL Decode
Paste URL-encoded text and get the readable characters back. This tool runs decodeURIComponent to turn percent-escapes like %20 and %2F into their original characters, with an optional + as space toggle. Everything runs in your browser — nothing is uploaded.
How to URL-decode a string
Paste your URL-encoded text into the input above. The tool runs decodeURIComponent locally, converting percent-escapes like %20 (space), %2F (slash), and %3D (equals) back into the original characters. If the string uses + for spaces — common in query strings — leave the + as space toggle on. Then click Copy.
What is percent-encoding?
URLs can only safely contain a limited set of ASCII characters, so anything else is written as a percent sign followed by two hex digits — this is percent-encoding. A space becomes %20, a slash becomes %2F, and non-ASCII characters are encoded as their UTF-8 bytes (é becomes %C3%A9). One wrinkle: in application/x-www-form-urlencoded data — the format query strings use — a space can instead be written as +. That creates ambiguity, because a raw + might mean a space or a literal plus. The + as space toggle above lets you pick: on decodes + to a space (query-string behavior), off keeps it a literal +. Note that an explicit %2B always decodes to a plus either way.
Is this private?
Yes. The decoding runs fully in the browser with JavaScript — your text is decoded locally and nothing is uploaded to any server. You can confirm in DevTools → Network: decoding fires no request.
Frequently asked questions
How do I decode a URL-encoded string?
Paste the encoded text into the input above. The tool runs decodeURIComponent locally, turning %XX escapes like %20 and %2F back into the original characters. Toggle + as space if the string uses + for spaces, then click Copy.
Why is %2B not becoming a plus?
%2B always decodes to a literal + sign — that is correct. What the toggle changes is a raw + character: with + as space on it becomes a space, and with it off it stays a plus. An explicit %2B is unaffected by the toggle.
Should '+' be decoded as a space?
It depends on context. In application/x-www-form-urlencoded query strings, + means space, so leave the toggle on. In path segments or other contexts, + is a literal plus, so turn the toggle off.
Is URL encoding the same as Base64?
No. URL encoding escapes unsafe characters as %XX so text is safe inside a URL, while Base64 turns arbitrary bytes into a compact ASCII alphabet. They solve different problems — see What is Base64? for the distinction.
Need plain Base64 encode/decode?
The main base64.dev tool handles text, files, and URL-safe mode with auto-detect.
Open base64.dev →