Free tool
URL Encoder and Decoder
Percent-encode and decode URLs, paths and query strings, with a parsed breakdown.
Paste a URL or a fragment of one to percent-encode it, or paste encoded text to read it back. When the input parses as a full URL, you also get a breakdown of its parts and its query parameters decoded into a list. Everything runs in your browser tab.
There are two encoders and they are not interchangeable. Component encoding escapes the reserved characters that carry meaning in a URL, so : / ? # & = all become percent codes, which is what you want when putting a value into a query parameter. Full-URL encoding leaves that punctuation intact so the address still works, and only escapes spaces and other unsafe characters. Using the wrong one is why a link with an ampersand in it breaks.
How to use it
- Paste your URL or encoded text into the input.
- Choose whether to treat it as a component value or a whole URL.
- Read the result, and the parsed breakdown when the input is a full URL.
- Copy the output, or press Swap to send it back through the other way.
Frequently asked questions
What is the difference between the two encoders?
Component encoding escapes reserved URL punctuation such as : / ? # & = and is what you want for a single query value. Full-URL encoding preserves that punctuation so the address remains usable, escaping only unsafe characters like spaces. Pick component when encoding a value, whole URL when encoding a link.
Why is a space sometimes %20 and sometimes a plus?
Percent-encoding uses %20. The plus sign comes from the older form-submission format, application/x-www-form-urlencoded, which is still what most servers expect from an HTML form body. This tool decodes both, so a plus in an encoded query string is read as a space.
Why does my decode fail with a malformed URI error?
A percent sign must be followed by two hexadecimal digits. A bare % or a truncated sequence like %E4%B is invalid, and so is a percent pair that does not form valid UTF-8. The error message here says which it was.
Do I need to encode non-Latin characters?
For transmission, yes: they are encoded as UTF-8 bytes, so a single character often becomes several percent codes. Browsers display the readable form in the address bar while sending the encoded version, which is why a URL you copy can look different once pasted.
The desktop version
URL Encoder and Decoder in Toolbelt
This page does the job in a browser tab. Toolbelt is the same tool as a native Mac app, plus the things a web page cannot do.
Tools
{
"name": "Holizmi",
"tools": [
"json",
"jwt",
"base64"
],
"live": true
}{
"sub": "12345",
"name": "Henry",
"exp": 1767225600
}019bd4e2-7a10-7c3e-9f21-4a6b8d3e5c07
019bd4e2-7a11-7b8a-8e44-1c2f9a7d6b13
019bd4e2-7a12-7d5f-b0c9-7e3a1f8c2d95 1 1 one
2 2 two
3 + inserted
3 4 three- Decode whatever URL is on your clipboard with one shortcut
- Decode a whole log file of encoded URLs at once
- Inspect query parameters as an editable table
- Works with no connection at all