URL Encoder & Decoder
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
- Paste your text or link into the first box.
- Choose Encode or Decode.
- Tick Full URL if you are working with a whole address and want characters like : / ? & = # to stay as they are.
- 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.