Skip to content
URL ParametersRuns in your browser

URL Encoder

Percent-encode text so it can be used safely in a URL. Choose component, full-URL or query-parameter encoding — everything happens in your browser.

Encoding mode

Encodes everything except A–Z a–z 0–9 - _ . ! ~ * ' ( ). Use for a single path segment or parameter value.

0 characters
0 characters

Runs entirely in your browser. Nothing you enter is sent to Zurl.

How to use the URL Encoder

  1. Step 1: Choose component, full URL or query-parameter encoding.

  2. Step 2: Type or paste the text.

  3. Step 3: Copy the encoded result.

How the three modes differ

Take the input a b&c=d/é:

  • Component → a%20b%26c%3Dd%2F%C3%A9. Every reserved character is encoded, so the result is safe inside any part of a URL. Equivalent to JavaScript’s encodeURIComponent, plus ! ' ( ) * for strict RFC 3986 compliance.
  • Full URL → a%20b&c=d/%C3%A9. Structural characters are left alone, like encodeURI.
  • Query parameter → a+b%26c%3Dd%2F%C3%A9. Spaces become +, theapplication/x-www-form-urlencoded format HTML forms use.

Encoding in code

In JavaScript use encodeURIComponent(value) for values, or build URLs with new URL() and url.searchParams.set(), which encode for you. In Python use urllib.parse.quote(value, safe=''); in PHP, rawurlencode().

Going the other way

To turn %20-style text back into readable characters, use the URL decoder. To build campaign links with correctly encoded parameters, the UTM builder handles encoding automatically.

Frequently asked questions

What is URL encoding?
URLs may only contain a limited set of ASCII characters. Anything else — spaces, &, ?, #, accented letters, emoji — must be written as a percent sign followed by the byte’s hexadecimal value. A space becomes %20, & becomes %26, and é becomes %C3%A9 (its two UTF-8 bytes).
Which encoding mode should I use?
Component for a single value going into a URL — a path segment or a query parameter value. Full URL when you have a complete address containing spaces or non-ASCII characters and want to keep its structure (: / ? & = #) intact. Query parameter to match HTML form submissions, where spaces become +.
Why is my & or = breaking the link?
In a query string, & separates parameters and = separates a name from its value. If a value contains either character unencoded, the server splits it in the wrong place. Encode the value in Component mode so & becomes %26 and = becomes %3D.
Is what I type sent to Zurl?
No. Encoding happens entirely in your browser with JavaScript. Nothing is transmitted, which makes the tool safe for URLs containing tokens or personal data.
Does it double-encode URLs that are already encoded?
In Full URL mode, existing valid %XX sequences are preserved, so encoding twice is harmless. In Component mode the % sign itself is encoded (%20 → %2520), which is correct when the value genuinely contains a literal percent sign.
↑↓ to move↵ to open⌘K anywhere