URLs can only contain a specific set of characters. When a URL contains spaces, special characters, or non-ASCII text, those characters need to be encoded — replaced with a percent sign followed by a hex code. Decoding reverses this process. If you've ever seen a URL with %20 in it, that's an encoded space.
⚡ Quick answer: Paste your URL or string into Virtual Text Tools → URL Encoder/Decoder and click Encode or Decode instantly. No signup needed.
Why URL encoding matters
URLs have a strict specification — only letters, digits, and a handful of special characters are allowed unencoded. Everything else must be percent-encoded. This matters when:
- Building links — query strings with spaces or special characters will break without encoding
- API development — passing parameters in GET requests requires proper encoding
- Debugging — decoding an encoded URL reveals what parameters are actually being sent
- SEO and analytics — tracking URLs often contain encoded campaign parameters
- Form submissions — browser form data is URL-encoded before being sent
The 4 encoding modes explained
Encode URL
Encodes an entire URL, preserving characters that are valid in a URL structure like slashes, colons, and question marks. Use this when you have a full URL and want to make it safe to share or embed.
Decode URL
Reverses full URL encoding — converts %20 back to spaces, %26 back to &, and so on. Use this to read an encoded URL in plain text.
Encode component
Encodes a URL component (like a query parameter value) more aggressively — encodes slashes, colons, and other characters that are valid in a full URL but not in a query value. Use this for individual parameter values.
Decode component
Reverses component encoding. Use this to read encoded query parameter values.
Common URL encoding reference
Here are the most frequently encoded characters you'll encounter:
- Space → %20
- & → %26
- = → %3D
- + → %2B
- / → %2F
- ? → %3F
- # → %23
- @ → %40
Frequently asked questions
What's the difference between encode URL and encode component?
Encode URL preserves characters that are structurally valid in a URL (like /, ?, &, #). Encode component treats all of these as data and encodes them too — making it safe for use as a query parameter value where those characters would otherwise be interpreted as URL structure.
Why does my encoded URL have + instead of %20?
Some systems use + to represent spaces in query strings (application/x-www-form-urlencoded format), while others use %20 (standard percent encoding). Both are valid in different contexts — this tool uses %20, which is universally compatible.
Is my data private?
Yes — all encoding and decoding happens locally in your browser. Nothing is sent to a server.