Free URL Encoder & Decoder
URL Encoder & Decoder percent-encodes or decodes a single component, a full URL or form data. Malformed escapes are kept and reported with their position, and “Decode until stable” unwraps double or triple encoding. A parse view splits a URL into its parts and lets you edit query parameters in a table.
- Modes:
- Component, full URL, form data
- Query editor:
- Add, edit, reorder, remove
- Double encoding:
- Decode until stable
- Price:
- Free
- Runs:
- Locally, in your browser
- Uploads:
- None: files never leave your device
- Account:
- Not needed
Quick answers
encodeURIComponent or encodeURI?
Use Component for a single value (a query parameter or path segment): it escapes / ? & = #. Use Full URL for a whole address, which keeps those characters because they give the URL its structure.
Processed on your device: your files are never uploaded. How it works
Network activity in this tab
What this page has requested since you opened the site in this tab. An upload is any request that sends data: POST, PUT, PATCH or a request with a body.
No uploads: nothing has been sent from this page.
No network requests yet.
To see every request, open your browser's developer tools (Network tab).
How to use the URL Encoder & Decoder
- Choose Encode or Decode and the mode: a single component, a full URL or form data.
- Type or paste your text: the result updates live, with warnings for malformed escapes.
- Switch to “Parse & edit URL” to see every part of a URL and add, edit, reorder or remove query parameters.
Credits & open source
Built from scratch on web standards. Thank you to the people who make these projects.
Web platform APIs used: URL API, TextEncoder, Clipboard API.
Full license texts: third-party notices · all credits
Frequently asked questions
Why are spaces sometimes + and sometimes %20?
HTML forms (application/x-www-form-urlencoded) write spaces as +, while URLs in general use %20. Pick the Form data mode to match what a form would send.
What does “decode until stable” do?
Some text gets encoded twice or more (%2520 instead of %20). This option keeps decoding until nothing changes and tells you how many layers it removed.