Percent-encode and decode URLs or query parameters without breaking special characters.
URLs can only contain a limited set of characters. Everything else — spaces, accents, &, ?, emoji — must be percent-encoded: the character's UTF-8 bytes written as %XX. A space becomes %20, "ç" becomes %C3%A7. Skipping this step is how links break: an unencoded & inside a parameter value silently splits it in two, and an accented word in a query can arrive corrupted at the server.
The two modes exist because there are two different jobs. "Component" (encodeURIComponent) encodes everything that is not a safe character — use it for values you are inserting into a query string, like a campaign name in a UTM parameter or a return URL passed to another page. "Full URL" (encodeURI) preserves the structural characters :, /, ?, & and = — use it to sanitize a complete address that already has its structure in place.
Decoding reverses the process and is just as useful: paste any percent-encoded URL from logs, analytics or a browser bar and read it in plain text. Everything runs locally in your browser — links you are debugging are never transmitted.
Each unsafe character is replaced by the UTF-8 bytes written in hexadecimal, prefixed with %. Space → %20, ç → %C3%A7, 🚀 → %F0%9F%9A%80.
Component for a value that goes inside a parameter (it encodes &, = and /). Full URL for a complete address — it keeps the structural characters intact so the URL still works.
Probably an unencoded & or space in the value. Encode the value with Component mode before putting it in the URL — that is exactly this case.
Both mean space in query strings, but + is a legacy form-encoding convention. %20 works everywhere in a URL — prefer it.
No. Encoding and decoding run entirely in your browser with the native JavaScript functions.
Vai.la turns any URL into a short link with click statistics, QR Code and your own biolink.
Vai.la is not responsible for how the tools are used or for decisions made based on their results.