URL Encode / Decode
Convert text with spaces or non-ASCII to and from percent-encoding.
Everything you enter is processed in your browser and never sent anywhere.
About this tool
Convert text containing spaces, symbols, or non-ASCII characters into percent-encoding (the %xx form) so it is safe to use in a URL, and decode it back to readable text. It uses the same method as encodeURIComponent and runs entirely in your browser; nothing you enter is sent anywhere.
Enter text and press Encode to convert it to the URL-safe form (a % followed by two hex digits). Press Decode to turn that form back into readable text.
It uses the same method as encodeURIComponent. Letters, digits, and a few symbols (- _ . ! ~ * ' ( )) are kept as-is; everything else becomes %xx. One non-ASCII character becomes several bytes in UTF-8, so it turns into several % groups.
You can choose how a plus sign is handled when decoding. In URL component mode, + is kept as-is (the same as decodeURIComponent). When restoring form or query-string data (application/x-www-form-urlencoded), choose Form / query to turn + into a space. If a % is not followed by two valid hex digits, an error is shown.
Everything runs on your device; the text you enter is never sent anywhere.
FAQ
- What is URL encoding?
- It replaces characters that are not allowed in a URL (spaces, symbols, non-ASCII) with a % followed by two hex digits, so they can be safely included in links and parameters.
- Why does non-ASCII text turn into many % groups?
- Each non-ASCII character is several bytes in UTF-8, and each byte becomes a %xx group. It decodes back correctly.
- Are + and %20 both spaces?
- %20 always decodes to a space. A plus sign depends on context: in a form or query string it is a space, but as part of a URL it should stay a plus. Use the plus-handling option to switch. When encoding, a space becomes %20.