URL Encoder & Decoder
Encode special characters for a URL, or decode a percent-encoded URL back to readable text.
Percent-encode or decode a URL instantly
Paste a URL or query value, switch between Encode and Decode, and the result updates live.
Use "Encode Component" (the default) for a single query parameter value, and check "Encode
full URI" when you're encoding an entire URL and need to preserve its structural
characters like :, /, ?, and &.
Frequently asked questions
When do I actually need to URL-encode something?
Any time a value with special characters — spaces, &, ?, #, =, or non-Latin text — needs to go inside a URL, like a query string parameter or a path segment, without breaking the URL's structure or being misread as a separator.
What's the difference between "Encode Component" and "Encode Full URI"?
Encode Component escapes every special character, including / and &, so it's correct for encoding a single value that will be placed inside a URL (like a query parameter). Encode Full URI leaves characters that are structurally meaningful in a complete URL (like :, /, ?, &) untouched, since encoding those would break the URL itself.
Why do spaces sometimes show up as %20 and sometimes as +?
%20 is the standard percent-encoding for a space and what this tool produces. The + character is a legacy convention specific to encoding form data (application/x-www-form-urlencoded), not general URLs — the two aren't interchangeable in every context, so %20 is the safer default outside forms.
Is my data sent anywhere when I encode or decode it?
No — this uses your browser's built-in encodeURIComponent/decodeURIComponent functions directly. Nothing is sent to a server.