🔗 URL Encoder

URL Encoder / Decoder

Percent-encode special characters for use in URLs, or decode an encoded URL back to something readable.

📥 Input
📤 Output
Output will appear here...
Choose Encode or Decode
Input:
hello world & more!
Encoded (component):
hello%20world%20%26%20more!
Verify it yourself. Open DevTools (F12), switch to the Network tab and use the tool. Nothing appears — the readout in the header counts first-party requests made since this page loaded, and using a tool makes none.

Full URL or component — they are not the same

This is the distinction that breaks most links. Encoding a whole URL leaves the structural characters alone: : / ? & = and # have to survive or the address stops being an address. Encoding a component — one query-string value, one path segment — escapes those same characters, because inside a value they are data rather than structure.

Use Encode Component when you are building ?q= from user input. Use Encode Full URL when you have a complete address containing spaces or accented characters. Getting this backwards is why a search link works until someone types an ampersand.

Why encoding locally matters

Query strings routinely carry tokens, session identifiers and email addresses. A URL you paste into a server-side encoder ends up in that server's access log in full, including the parts you were about to redact. Here the transformation uses the browser's built-in encodeURIComponent, and nothing is sent.

Advertisement

Common questions

What is the difference between encodeURI and encodeURIComponent?

encodeURI preserves the characters that give a URL its structure, so it is for whole addresses. encodeURIComponent escapes them too, so it is for individual query values or path segments.

Why does a space become %20 sometimes and + other times?

%20 is correct percent-encoding. The + form comes from HTML form submission, which uses application/x-www-form-urlencoded. Both appear in the wild; decoders should handle each.

Does this tool send my URL anywhere?

No. Encoding and decoding happen in the page with the browser's own functions.