CanDoYa
EN

URL Encode and Decode

Runs entirely in your browser - no upload, no sign-up.

Standard percent-encoding for a single query value, path segment or fragment (encodeURIComponent).
Input
Result
Enter text to encode, or percent-encoded text to decode
Share this tool

What is URL encoding?

URL encoding (also called percent-encoding) rewrites characters that aren't safe in a URL - spaces, accents, emoji, ampersands - as `%` followed by their UTF-8 byte values. This tool encodes text into URL-safe form and decodes it back in your browser, with three modes for a single value, a whole URL, or an HTML-form query string.

How to use

  1. 1Pick a direction. Choose Encode to turn text into a URL-safe form, or Decode to turn percent-encoded text back into text.
  2. 2Pick a mode. Component encodes a single value (the most common case), Full URL preserves the URL structure, and Form uses + for a space.
  3. 3Paste your input. Type or paste into the input box - the result updates live in the panel beside it.
  4. 4Copy the result. Copy the output and paste it wherever you need it. Invalid percent escapes show a clear message instead of garbled text.

Who it's for

Encoding runs as you type and stays on your device - your text is never uploaded, which makes it safe for tokens, redirect URIs and private query strings. Pick Component for a single query value or path segment, Full URL when the input is already a whole URL with non-ASCII text, and Form for HTML form submissions where a space is +.

FAQ

Is this URL encoder free?

Yes - it's completely free, with no sign-up and no usage limits. Encoding and decoding both run in your browser.

Is my data uploaded anywhere?

No. Your text is processed locally in your browser and never sent to a server, so it's safe for tokens, OAuth redirect values and private query strings.

What is the difference between Component, Full URL and Form modes?

Component (encodeURIComponent) encodes a single query value or path segment - it percent-encodes <code>&amp; = ? /</code> too. Full URL (encodeURI) keeps those structural characters as-is, which is what you want for a whole URL. Form is like Component but a space is <code>+</code> instead of <code>%20</code> - the HTML <code>application/x-www-form-urlencoded</code> rule.

Does it handle emoji, accents and non-Latin scripts?

Yes. Characters outside ASCII are encoded as their UTF-8 bytes - <code>é</code> becomes <code>%C3%A9</code>, <code>🌍</code> becomes <code>%F0%9F%8C%8D</code> - and decoded back to the original text.

Why is a space sometimes %20 and sometimes +?

<code>%20</code> is the universal percent-encoding for a space. The plus form (<code>+</code>) is only used inside <code>application/x-www-form-urlencoded</code> data - that is, the body of an HTML form POST or the query string of a form submission. Use the Form mode for those; use Component or Full URL everywhere else.

Why do I get "Invalid URL encoding"?

The input contains a <code>%</code> that isn't followed by two hex digits (for example <code>%G1</code> or a trailing <code>%</code>), or the percent-bytes don't form valid UTF-8. Fix the broken sequence or paste the original encoded string again.

Can I encode an already-encoded string?

You can, but every <code>%</code> in the input becomes <code>%25</code>, so the result is doubly encoded. Decode first if your input is already percent-encoded - or use the Decode direction.