URL Encoder & Decoder
Percent-encode and decode URL components. Handles query parameters, special characters and full URIs.
Last updated: April 2026 Β· Runs in your browser Β· No sign-up
When you need URL encoding
Any time user input goes into a URL β query parameters, path segments, fragment identifiers β unsafe characters must be percent-escaped. Skipping this creates broken links, security vulnerabilities (parameter injection), or garbled foreign-language URLs.
Characters that always need encoding
Space, &, =, ?, #, /, +, <, >, %, and all non-ASCII. Letters, digits, and -_.~ never need encoding (RFC 3986 unreserved).
Frequently Asked Questions
What's the difference between encodeURI and encodeURIComponent?
encodeURI preserves URL structure characters like /, ?, #, & β use it for whole URLs. encodeURIComponent escapes everything non-alphanumeric β use it for individual query values.
Why do spaces become %20 sometimes and + other times?
In query strings (application/x-www-form-urlencoded), spaces become +. In path segments, they become %20. Both decode back to a space; the difference is historical.
How are non-ASCII characters handled?
UTF-8 encoding first, then percent-escape each byte. So 'ΓΆ' (U+00F6) becomes %C3%B6 β two percent-octets for the two UTF-8 bytes.
Is this the same as HTML entity encoding?
No. HTML entities (&, <) escape for HTML context. URL encoding (%20, %C3%B6) escapes for URL context. Mixing them breaks both.