URL Encoder and Decoder
Component mode escapes every reserved character — use it for query values.
About URL Encode/Decode
Encode text for safe use in a URL, or decode a percent-encoded string back to readable text. Handles whole URLs and individual components, which need different rules.
URLs may only contain a limited set of characters, so anything else — spaces, ampersands, question marks, accented letters, emoji — has to be percent-encoded. A space becomes %20, an ampersand becomes %26, and so on. Getting this wrong is a classic source of broken links and dropped query parameters.
The distinction between encoding a whole URL and encoding a component matters. In a full URL, characters like : / ? and & are structural and must be left alone. In a single query value they are data and must be escaped, or an ampersand inside a value will be read as the start of the next parameter. This tool offers both modes.
What you can use it for
- Build a query string containing a value with spaces, ampersands or symbols.
- Decode a long tracking or redirect URL to see where it actually goes.
- Fix a link that breaks when it contains a non-English character.
- Prepare a search term for use in a URL template.
- Read a percent-encoded value out of a log file or API request.
How it works, step by step
- 1
Pick a direction
Encoding readable text, or decoding a percent-encoded string.
- 2
Choose full URL or component
Use component mode for a single query value, and full-URL mode to preserve the structural characters.
- 3
Paste your input
The result appears as you type.
- 4
Copy or swap
Copy the output, or swap it into the input to reverse the conversion.
Frequently asked questions
What is URL encoding?
Replacing characters that are not allowed in a URL with a percent sign followed by their hexadecimal byte value. A space becomes %20. It is also called percent encoding.
What is the difference between encoding a URL and a component?
Full-URL encoding leaves structural characters like : / ? # and & intact so the address still works. Component encoding escapes them too, which is what a single query value needs — otherwise an ampersand inside the value looks like a new parameter.
Why does a space sometimes become + instead of %20?
The + form comes from HTML form submissions, where spaces in the query string are encoded as +. Both appear in the wild; %20 is correct for general URL use.
Do I need to encode non-English characters?
Yes. They are encoded as their UTF-8 bytes, so a single accented character can become several percent-escapes. That is expected and decodes back correctly.
Is my input sent anywhere?
No. Everything is processed in your browser and nothing is uploaded.