URL Encoder / Decoder

Encode or decode URL components instantly in your browser for query strings, parameters, and debugging.

Input

0 characters

Output

0 characters

Use 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. 1 Paste the text or URL fragment into the input.
  2. 2 Pick the mode: encode component (values), encode full URI (whole URLs), or decode.
  3. 3 Copy the converted output with one click.
  4. 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.