How to URL Encode or Decode
URLs may only contain a limited set of characters, so anything else — spaces, ampersands, accented letters, emoji — has to be percent-encoded, turning each byte into a %XX sequence. This tool does that and reverses it, correctly and with full Unicode support. Choose Encode to make text URL-safe or Decode to turn percent-encoding back into readable text. The important choice is scope: component mode encodes every reserved character, which is what you want for a single query value or path segment; full-URL mode leaves structural characters like : / ? & intact so you can encode an entire address without breaking it. If your data comes from an HTML form, turn on treat + as space so pluses are handled the way form submissions expect. Malformed input gets a clear error rather than a silent failure, and Swap lets you reverse a conversion instantly. Everything runs in your browser, so nothing is uploaded.
Choose a mode
Pick Encode or Decode, and component or full-URL scope.
Type or paste
Enter your text or encoded string; the result appears instantly.
Copy or save
Copy the output or download it as a text file.
Component vs Full-URL Encoding
Component mode
Encodes every character that has special meaning in a URL, including : / ? & = and space. Use it for a single piece of data — one query parameter value, one path segment — so those characters can't be misread as structure.
Full-URL mode
Leaves the characters that build a URL's structure alone and only encodes the rest, like spaces and accents. Use it when you have a whole address and just need to make it valid without breaking its parts.
Common Use Cases
Build query strings
Encode a value so it's safe to drop into a URL parameter.
Decode a link
Turn a percent-encoded URL back into readable text to see what it contains.
API requests
Encode path and query values for correct, unambiguous requests.
Form data
Handle application/x-www-form-urlencoded values, including + for spaces.
Debugging redirects
Decode nested, double-encoded redirect URLs to inspect them.
Analytics links
Encode UTM parameters and campaign values safely.
Non-Latin text
Encode accented or non-Latin characters into valid UTF-8 sequences.
Quick fixes
A fast, no-install way to make a URL valid or readable.
Tips & Best Practices
Component for values
Use component mode for a single query value or path segment so reserved characters are fully escaped.
Full-URL for whole links
Use full-URL mode when encoding an entire address you don't want to break apart.
Watch double-encoding
Encoding an already-encoded string produces %25XX. Decode once per layer to undo it.
Know your + character
In form data + means space; in a path it's literal. Use the plus-as-space option to match.
Unicode is UTF-8
Non-Latin characters become multi-byte %XX sequences — that's correct and interoperable.
Decode to inspect
Decoding a suspicious link reveals its true destination before you follow it.
Troubleshooting
It says the encoding is invalid
Decoding needs well-formed %XX sequences. Check for a lone % or an incomplete pair, then try again.
My & and = got encoded
You're in component mode, which escapes them. Switch to full-URL mode to keep URL structure intact.
Spaces became + not %20
The plus-as-space option is on. Turn it off to output %20 for spaces instead.
Decoding left %25 behind
The text was double-encoded. Decode again to remove the second layer.
Frequently Asked Questions
How do I URL encode or decode for free?
Pick Encode or Decode, type or paste your text, and the result appears instantly. Copy or download it — free, no signup.
What's the difference between the two modes?
Component mode escapes every reserved character for a single value; full-URL mode keeps structural characters so a whole address stays valid.
Which mode should I use for a query value?
Component mode, so characters like &, = and space in the value can't be mistaken for URL structure.
Is it Unicode-safe?
Yes. Accented, emoji and non-Latin characters are encoded as correct UTF-8 percent sequences.
Why did my spaces become +?
The plus-as-space option is enabled, matching form-data encoding. Turn it off for %20 instead.
What is double-encoding?
Encoding an already-encoded string, which turns % into %25. Decode once per layer to reverse it.
Can I decode a whole URL?
Yes. Decode mode turns percent-encoding anywhere in the string back into readable characters.
What if the encoding is malformed?
You get a clear error rather than silent, wrong output. Check for stray % characters.
Does it handle + as space on decode?
Only if you enable the plus-as-space option, since + means space in form data but is literal elsewhere.
Can I reverse a conversion quickly?
Yes. The Swap button moves the result to the input and flips the mode.
Is my data sent to a server?
No. Everything happens inside your browser, so your data never leaves your device.
Can I download the result?
Yes. Save the output as a text file, or copy it to your clipboard.
How much text can it handle?
It comfortably handles large strings, all within your browser.
Does it work offline?
Once the page has loaded it runs entirely in your browser, so it keeps working without a connection.
Does encoding change reserved characters in full-URL mode?
No. Full-URL mode leaves : / ? & = and similar intact, encoding only spaces and non-URL characters.
Is this the same as HTML encoding?
No. URL encoding uses %XX for URLs; HTML encoding uses entities like & for markup. They're different.
Does it work on phones?
Yes, in any modern browser on Windows, Mac, Android or iPhone with nothing to install.
Is this tool really free?
Completely free, forever — no account, no ads and no premium wall.
100% free · No signup · Processed in your browser · Data never sent
Last updated: August 2026 · FlipMyFormat URL Encode & Decode
Written and maintained by the FlipMyFormat team · Runs entirely in your browser