URL Encoder & Decoder

Percent-encode and decode URLs or query parameters without breaking special characters.

How to use

  1. Paste the text or URL. Choose "Component" to encode a value that goes inside a parameter, or "Full URL" to encode a complete address without touching its structure.
  2. Click "Encode" or "Decode".
  3. Copy the result — ready to paste into a link, a UTM parameter or an API call.

About this tool

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.

The formula

Each unsafe character is replaced by the UTF-8 bytes written in hexadecimal, prefixed with %. Space → %20, ç → %C3%A7, 🚀 → %F0%9F%9A%80.

Frequently asked questions

When should I use "Component" vs "Full URL"?

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.

Why did my UTM parameter break the link?

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.

What is the difference between %20 and + for spaces?

Both mean space in query strings, but + is a legacy form-encoding convention. %20 works everywhere in a URL — prefer it.

Is my URL sent anywhere?

No. Encoding and decoding run entirely in your browser with the native JavaScript functions.

Related tools

Long links? Shorten them for free

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.