URL Encoder & Decoder
Encode and decode URLs for safe transmission.
About this tool
Encode special characters in URLs for safe transmission over the internet, or decode encoded URLs back to readable format. Essential for working with query strings, API parameters, and web development.
Variants
URL Encode
Percent-encode text for safe use in URLs. For query parameters, path segments, form submissions, and anywhere reserved characters need escaping.
URL Decode
Decode percent-encoded URLs back to readable text in your browser. For inspecting OAuth callbacks, deep links, or debug-parsing query strings.
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
- Paste your URL or text into the input field
- Select "Encode" or "Decode" mode
- View the result instantly
- Copy the output using the copy button
Frequently Asked Questions
What's the difference between encodeURI and encodeURIComponent?
encodeURI leaves structural characters (: / ? = & #) alone because it assumes you're encoding a whole URL. encodeURIComponent encodes them, because it assumes you're encoding a single query-parameter value. Use component when building query strings; use URI when passing a full URL through something picky.
Why is + in my decoded output a space?
application/x-www-form-urlencoded (the format of HTML form submissions) encodes spaces as +, not %20. Browsers decode + to space on form posts. If the input came from a query string, that's right. If it came from a path, `+` is literal and shouldn't be converted.
Should slashes be encoded?
Inside a query-parameter value: yes, as %2F, otherwise they'll be interpreted as a path boundary. Inside the path itself: no — encoding a slash changes the URL's meaning. The tool defaults to component-style encoding, which is the safe default for anything going after the ?.
Can I encode a URL that already has encoded parts?
Double-encoding produces strings like %2520 (a %20 with the percent encoded again). The fix is to decode first, then re-encode. When in doubt, run the input through decode once and see if you get a readable URL back — if yes, encode that; if no, encode as-is.
Is my URL logged here?
No — encoding and decoding run in your browser via encodeURIComponent and decodeURIComponent. That's worth noting because URLs often contain session tokens, auth codes, or OAuth state parameters you don't want captured in any third-party log.