Home / Text Tools / URL Encoder / Decoder

🔗 URL Encoder / Decoder

Percent-encode URLs or decode them back to readable text. Free, unlimited, private — works entirely in your browser.

How to use

  1. Paste the URL or text you want to encode into the input box.
  2. Choose Encode to percent-encode special characters, or Decode to reverse it.
  3. Pick full URL mode (keeps : / ? # and & intact) or component mode (encodes everything, for query values).
  4. Copy the result — it is ready to paste into code, links, or API calls.

FAQ

Is it really free?

Yes — every tool on this site is 100% free with no limits, no signup and no watermarks.

Is my data private?

Absolutely. All processing happens locally in your browser. Your files are never uploaded to any server.

What is percent-encoding?

A mechanism that represents special characters in URLs as a % followed by two hexadecimal digits — a space becomes %20, for example. It guarantees URLs contain only safe ASCII characters that every server and browser understands.

What is the difference between encodeURI and encodeURIComponent?

encodeURI is for whole URLs: it leaves structural characters (: / ? # &) untouched. encodeURIComponent is for individual values like query parameters: it encodes those structural characters too. Use component mode when encoding a value that sits inside a URL.

When do I actually need to encode a URL?

Whenever it contains spaces, non-ASCII characters (Urdu, Arabic, emoji), or reserved characters inside a parameter value. Unencoded URLs break links, HTML forms, redirects, and API requests.

Does decoding handle plus signs (+) as spaces?

In query strings, + traditionally represents a space (HTML form encoding). The decoder handles both %20 and + correctly when decoding query-string style input.

Complete Guide to URL Encoding

URLs were designed in an ASCII-only era, but the modern web is full of spaces, Urdu text, emojis, and symbols. Percent-encoding bridges the gap: any unsafe character is replaced by a % followed by its two-digit hex code. A space becomes %20, so "hello world" becomes hello%20world — a URL every browser and server can handle.

The two modes, explained

Characters in a URL fall into two groups. Reserved characters (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) have structural meaning — they separate the protocol, host, path, and query. Unreserved characters (letters, digits, - _ . ~) are always safe. Full-URL mode (like JavaScript's encodeURI) encodes only the unsafe characters and leaves structure intact — use it for complete URLs. Component mode (like encodeURIComponent) encodes reserved characters as well — use it for a single query value such as ?q=hello world & friends, where the & inside the value must not be mistaken for a parameter separator.

Classic bugs this prevents

In code: JavaScript has encodeURIComponent() built in; Python has urllib.parse.quote(). But for quick one-off jobs — fixing a link, preparing a redirect, decoding a messy URL from an email — this tool is faster than opening a console.

Encoding non-English text

Unicode characters are first converted to UTF-8 bytes, then each byte is percent-encoded. The Urdu word اردو becomes a sequence like %D8%A7%D8%B1%D8%AF%D9%88 — long, but completely safe to transmit. Modern browsers display the decoded form in the address bar while sending the encoded form over the wire, which is why internationalized URLs "just work" for users but still need proper encoding in code.

Where encoding matters most