URL encode & decode, both modes
Component or full-URL — the distinction most tools skip is the one that causes the bugs.
The one-character bugs that percent-encoding causes
An ampersand inside a query value silently splits it in two. A raw space breaks a URL in some contexts and works in others. Encoding an already-encoded string turns %20 into %2520. These bugs share a root cause: using the wrong of the two encoding functions. This tool makes the choice explicit — component mode for values, full-URL mode for complete addresses — and gives honest errors on invalid input. Since query strings routinely carry tokens and credentials, it all runs in your tab.
Related text tools
Frequently asked questions
How do I URL-encode or decode text?
Paste into the box and hit Encode or Decode. Component mode encodes everything including & and = (right for query-string values); Full URL mode keeps the URL structure characters :/?&= intact (right for whole addresses).
What is the difference between the two modes?
encodeURIComponent escapes every reserved character — use it for a single value going into a query string. encodeURI leaves the characters that give a URL its structure untouched — use it when you have a complete URL that just needs spaces and unicode escaped.
Why does my decode fail?
A stray % that is not followed by two hex digits makes percent-encoding invalid. The tool says so explicitly instead of returning garbage — usually it means the text was already decoded, or was cut mid-sequence.
What is %20 — and why does + sometimes mean space?
Percent-encoding writes each byte as % plus two hex digits; a space is %20. The + convention comes from an older form-submission format (application/x-www-form-urlencoded) and only means space in query strings, which is a classic source of double-encoding bugs.
Is what I paste sent anywhere?
No. URLs carry session tokens, API keys and personal data in their query strings — encoding and decoding here are pure functions running in this tab.