URL Encode / Decode
Escape and unescape URL strings.
Runs entirely in your browser. Nothing you enter or upload leaves your device.
What the URL encoder does
URLs may only contain a limited set of characters. Spaces, accented letters, emoji and symbols such as & or # have to be written as percent codes, so a space becomes %20 and “é” becomes %C3%A9. This tool does that conversion in either direction, and lists the parameters of any query string it finds.
You’ll need it when building a link with a search term or a redirect address inside it, when a tracking link looks like a wall of % signs and you want to read it, or when an API call fails because a value containing & split itself into two parameters.
How to use the URL encoder
- Choose Encode or Decode.
- Pick the encoding: Component for a single query value or path segment, Full URL to keep :, / and ? intact, or Form data to turn spaces into +.
- If the text contains a query string, its parameters are listed in a table.
Understanding the results
The output updates as you type. Component encoding escapes almost everything apart from letters, digits and a few marks such as -, _, . and ~. That includes /, ?, & and =, which is exactly what you want for a value that sits inside someone else’s URL. Full URL encoding leaves those structural characters alone and only escapes things like spaces and accented letters. Form data matches what an HTML form sends, with + for a space.
When decoding in Full URL mode, codes such as %2F and %26 are left in place on purpose, because turning them back into / and & would change how the address is read. Switch to Component to decode everything. The parameters table shows each key and its decoded value, which makes it easy to spot a duplicated key or an empty value. Swap moves the output back into the input and flips the direction.
Questions
Component or full URL?
Use Component for a value you are putting inside a URL, such as a search term. Use Full URL when you have a complete address that only needs unsafe characters such as spaces escaped.
Why does decoding fail?
A % must be followed by two hexadecimal digits, and the bytes must form valid UTF-8. Malformed sequences cannot be decoded safely.
Is my text sent anywhere?
No. It is encoded in your browser.
Why is a plus sign showing up as a space?
In form data, and in the parameters table, + stands for a space. If you need a real plus sign in a query value, encode it with Component, which writes it as %2B.