Input
0 charactersOutput
0 charactersUse URL Component for query parameters, form values, or dynamic URL segments, and use Full URL only when you want to encode an already well-formed whole URL.
Related Tools
About the URL Encoder / Decoder
URLs can legally contain only a limited ASCII set — letters, digits, and a handful of reserved symbols. Everything else (spaces, Hindi text, ampersands in values, emoji) must be percent-encoded: each byte becomes %XX. This is why "mumbai weather" becomes mumbai%20weather and why an ampersand inside a query value must be encoded or it silently splits the parameter.
This tool handles the two distinct jobs that get confused: encodeURIComponent (encoding a value so it can safely live inside a URL — encodes reserved characters like &, ?, = too) and encodeURI (encoding a whole URL while preserving structure like / and ?). Decoding works symmetrically for both.
It is fully local and instant — paste, convert, copy. Multi-byte scripts are handled through proper UTF-8 semantics, so international text round-trips exactly.
Internationalised URLs add one more layer: modern browsers display Devanagari, Arabic, or CJK web addresses as readable text, but behind the scenes they travel the wire percent-encoded. This is the visibility-versus-transmission distinction — what you see in the address bar is a friendly rendering, and what a server receives is the encoded form. When debugging redirects, analytics, or broken shares, always inspect the encoded form; it is the ground truth of what actually flowed.
How to use the URL Encoder / Decoder
- 1 Paste the text or URL fragment into the input.
- 2 Pick the mode: encode component (values), encode full URI (whole URLs), or decode.
- 3 Copy the converted output with one click.
- 4 Decode any URL you receive to inspect what its parameters really contain.
Key features
Component vs full-URI modes
The distinction that breaks query strings, made explicit and one-tap.
UTF-8 correctness
Non-ASCII scripts and emoji encode to exact byte sequences and decode back losslessly.
Plus-space clarity
Handles both %-encoded spaces and the form-style + convention correctly in context.
Instant local operation
No network, no limits, no data retention — safe for tokens and signed URLs.
Who uses the URL Encoder / Decoder?
- Building tracking links, UTM parameters, and API query strings that survive special characters.
- Debugging why a shared link opened the wrong page (an unencoded & in a parameter).
- Encoding search terms, city names, and user text for map and e-commerce URLs.
- Decoding cryptic redirect URLs during SSO and OAuth debugging.
- Preparing safe filename slugs for download links.
Tips and best practices
- Encode parameter values individually, never the whole assembled URL twice — double encoding produces %2520 artefacts.
- Spaces appear as %20 in paths but as + in form (application/x-www-form-urlencoded) bodies — both are valid in their place.
- When a link breaks "randomly", hunt for raw &, +, #, or % in values; # starts a fragment and truncates everything after it.
- Reserved characters (:/?#[]@!$&’()*+,;=) have structural meaning in URLs — only component-encoding treats them as plain text.
- Signed URLs (SAS, S3, payment callbacks) fail if any character is re-encoded; pass them through untouched, never rebuild them.
Frequently asked questions
encodeURI preserves URL structure characters (:/?# etc.) for encoding a complete URL; encodeURIComponent encodes everything except unreserved characters, making it right for individual values.
%20 is the generic percent-encoding; + is the form-encoding convention for query bodies. In a query string, both are usually accepted, but + is wrong in a path.
It is an encoded %. Seeing %2520 means a space (%20) was encoded twice — a classic double-encoding bug.
Encoding applies per UTF-8 byte, so a Devanagari character becomes three %XX groups and an emoji four. Decoding reverses the bytes into the original character exactly.
Decoded text is just text — the risk is what you do with it. Never inject decoded values into HTML without escaping, or you invite XSS.