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 +.
URL Encode and Decode
Runs entirely in your browser - no upload, no sign-up.
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
- 1Pick a direction. Choose Encode to turn text into a URL-safe form, or Decode to turn percent-encoded text back into text.
- 2Pick a mode. Component encodes a single value (the most common case), Full URL preserves the URL structure, and Form uses + for a space.
- 3Paste your input. Type or paste into the input box - the result updates live in the panel beside it.
- 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
- Building query strings - turn a name like
café & cointocaf%C3%A9%20%26%20coso it survives in a URL. - Reading server logs - paste a request line and decode it to see the human-readable query and path.
- OAuth and redirects - encode a
redirect_uriorstatevalue so it round-trips intact through the provider. - HTML form data - decode an
application/x-www-form-urlencodedbody where spaces are represented as+.
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>& = ? /</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.