URL Encoder & Decoder

Options

Everything runs in your browser. Your data never leaves your device.

What this tool does

This URL encoder and decoder converts text to and from percent-encoding. Use it to make a value safe to place in a link or query string, or to turn a long string of %20 and %D9 codes back into readable words. It works with English and Arabic and runs entirely in your browser.

How to use it

  1. Paste your text or link into the first box.
  2. Choose Encode or Decode.
  3. Tick Full URL if you are working with a whole address and want characters like : / ? & = # to stay as they are.
  4. Copy the result.

How URL encoding works

Letters, digits and the characters - _ . ! ~ * ’ ( ) stay unchanged. Everything else is converted to UTF-8 bytes and each byte is written as % followed by two hex digits. A space becomes %20, an ampersand becomes %26 and an equals sign becomes %3D.

Example: the text “a b&c=d” becomes a%20b%26c%3Dd in component mode. In full URL mode the address https://example.com/a b?q=1 becomes https://example.com/a%20b?q=1, with the / ? and = left in place.

Tips

Encode each value separately and then join them into the link, rather than encoding a finished link in component mode, which would break its structure. When you decode, a plus sign is not converted to a space, because that rule only applies to form submissions. Your text is processed locally and is never uploaded.

Frequently asked questions

What is URL encoding?

URL encoding, also called percent-encoding, replaces characters that are not allowed or have special meaning in a URL with a percent sign and two hex digits, such as %20 for a space.

What is the difference between encoding a component and a full URL?

Component mode escapes every special character, including / ? & = and

Does it handle Arabic text in links?

Yes. Arabic letters are converted to UTF-8 and written as percent sequences, for example مرحبا becomes %D9%85%D8%B1%D8%AD%D8%A8%D8%A7, and decoding turns them back into readable text.

Why do I get an error when decoding?

The text contains a % that is not followed by two valid hex digits, or the sequence does not make valid UTF-8. Check for a missing or damaged part of the link.

Related tools