URL Encoder/Decoder

Encode text so it can travel safely inside a web address, or decode a percent-encoded URL back into something readable. Spaces, ampersands, question marks and non-Latin characters all mean something specific in a URL, so they have to be escaped before they can be carried as data.

How to URL-encode or decode text

  1. Paste your text or encoded URL into the input box.
  2. Tap Encode or Decode.
  3. Copy the result from the output box.

When you'd use this

Good to know

Frequently asked questions

What exactly gets encoded?

Everything that isn't safe in a URL component: spaces become %20, & becomes %26, and non-Latin text like Hindi becomes its UTF-8 percent-sequence. This is JavaScript's standard encodeURIComponent behaviour.

Why did decoding fail?

Decoding expects valid percent-encoding β€” a % must be followed by two hex digits. Malformed sequences fail with a clear message instead of producing garbage. A + is treated as a space, as it appears in query strings.

When do I need this?

Whenever a value goes inside a URL: search queries, redirect targets, API parameters, or sharing links containing special characters.

Why is a space sometimes %20 and sometimes a plus sign?

Both exist. Percent-encoding uses %20, while the older form encoding used by HTML forms uses +. This tool produces %20, which is correct in URL paths and accepted in query strings.

Should I encode the whole URL?

No. That would escape the slashes and colons the address needs in order to work. Encode only the values you are putting into it β€” a search term or a parameter, not the address itself.

Why does my decoded text still look wrong?

Usually because it was encoded twice, turning a percent sign into %25. Decode it a second time and it should come out properly.