URL Encode & Decode.
Percent-encode text for URLs and decode it back — live, UTF-8 aware, entirely in your browser.
Why URLs need encoding
A URL is plain ASCII with strict structure: ? starts the query, & separates parameters, = assigns values. Any of those characters inside a value — or any non-ASCII character — must be percent-encoded as its UTF-8 bytes (ä → %C3%A4), or the URL silently changes meaning.
Component vs. full URL
The single most common mistake is using the wrong scope. Component mode (JavaScript's encodeURIComponent) escapes structural characters too — right for query values, path segments and form fields. Full-URL mode (encodeURI) keeps :/?#&= intact — right only for tidying a complete URL. Encoding a full URL with component mode destroys it.
URL encoding in your code
// single query value
encodeURIComponent("a&b=c"); // "a%26b%3Dc"
// safer: let URLSearchParams do it
const p = new URLSearchParams({ q: "a&b" });
p.toString(); // "q=a%26b"from urllib.parse import quote, unquote, urlencode
quote("a&b=c", safe="") # "a%26b%3Dc"
unquote("%C3%A4") # "ä"
urlencode({"q": "a&b"}) # "q=a%26b"Frequently asked questions
What is URL encoding (percent-encoding)?
Should I encode the whole URL or just a value?
Why does a + sometimes mean a space?
What is double encoding, and why is it a problem?
Which characters never need encoding?
Is my data uploaded when I use this tool?
Free tools from a European software company.
- Runs in your browser
- Made & hosted in the EU
- No account needed