URL Encode & Decode
Encode text so it’s safe inside a URL, or decode a percent-encoded URL back to readable text.
Text
Encoded
How to use it
- 1Choose Encode or Decode.
- 2For encoding, pick "Query value / path segment" to escape everything, or "Full URL" to keep :/?#& intact.
- 3Copy the result. Tick the + option when working with HTML form data.
Private by design
Everything runs in this browser tab. Your input is never uploaded, logged or saved on a server, and there are no public "recent" pages. Close the tab and it's gone.
How we keep it privateExamples
Input
café & crème
Output
caf%C3%A9%20%26%20cr%C3%A8me
Input
%2Faccount%3Ftab%3D2
Output
/account?tab=2
Component vs full URL
Query value / path segment mode works like JavaScript’s encodeURIComponent: it escapes every character that has a meaning in a URL, including / ? & = #. Use it for a single value you insert into a URL.
Full URL mode works like encodeURI: it keeps the URL’s structure and only escapes spaces, non-ASCII characters and a few unsafe symbols. Use it to clean up a whole link.
| Input | Component | Full URL |
|---|---|---|
| a b | a%20b | a%20b |
| a/b?c=d | a%2Fb%3Fc%3Dd | a/b?c=d |
| é | %C3%A9 | %C3%A9 |
Frequently asked questions
Should spaces be %20 or +?
In URLs, %20. The + form comes from HTML forms (application/x-www-form-urlencoded) and is only read as a space in query strings by servers that expect form data.
Why does decoding fail with "invalid escape"?
A % sign must be followed by two hex digits that form valid UTF-8, like %20 or %C3%A9. A bare % (e.g. "100%") has to be written as %25.
Is my URL sent anywhere?
No. URLs can contain tokens and personal data; encoding and decoding happen only in your browser.