Skip to content

URL encode

Percent-encode text so it survives a URL. Three different encodings exist for three different jobs, and picking the wrong one is how values silently break — so the page tells you which you want.

  • Processed on your device
  • No upload, no waiting
  • No signup, no watermark
Encoded

How it works

1

Paste your text

Any text, in any language. It is encoded as UTF-8, which is what every modern server expects.

2

Pick the job

One value going into a query string, a whole assembled URL, or a form submission. The difference matters and each is explained.

3

Copy the result

Encode line by line if you have a list to do at once.

Frequently asked questions

Which of the three should I use?

Component, almost always. Use it when you are encoding ONE value that is about to go into a query string or a path segment — a search term, an email address, a redirect target. It is the only one of the three that escapes &, =, ? and /, which is exactly what stops your value breaking out of its parameter and becoming two parameters. Use full-URI only when you already have a complete URL and just want its unsafe characters cleaned up; it deliberately leaves the structural characters alone so the URL stays a URL. Use form when you are building an application/x-www-form-urlencoded body, where a space is + rather than %20.

Why did my "&" break the URL?

Because it was not encoded, and & is how a query string separates one parameter from the next. A value of "Smith & Sons" appended raw to ?company= arrives at the server as company=Smith and a second, empty parameter called "Sons". It is the single most common URL bug, and component encoding is the fix — it turns & into %26 so the value stays one value.

Why did my "+" become a space?

Because in a query string, + means space — a rule inherited from HTML forms that nothing has ever been able to remove. So a literal plus in your data, in a phone number or a Base64 string, is read as a space by the receiving server. Component encoding escapes it to %2B, which arrives intact.

Does it handle other languages and emoji?

Yes. Text is converted to UTF-8 first and then percent-encoded byte by byte, which is what RFC 3986 requires and what every modern server expects. Japanese, Arabic, accented Latin and emoji all round-trip exactly.

Why are ! ' ( ) * encoded here when other tools leave them?

Because the browser's built-in encodeURIComponent leaves those five alone, and RFC 3986 lists them as reserved. Some servers and frameworks treat them structurally, so a value containing them can be misread. Encoding them is harmless — they decode back identically everywhere — and it removes a class of rare, hard-to-diagnose bug. This is what careful implementations do.

Is my text uploaded?

No. Everything happens inside this page, on your own device — nothing is uploaded and no request is made. You can disconnect from the internet after the page loads and it keeps working.