URL Encode / Decode 🔒 Your data never leaves your browser.
Percent-encode or decode URLs and query parameters.
Query parameters
Values are shown decoded. Edit them and the URL above is rebuilt, correctly escaped.
No query string in the input yet — add a parameter to start one.
| Name | Value | Remove parameter |
|---|
About this tool
URL encoding (percent encoding) converts special characters into %XX form so they can travel safely inside a URL. Choose Component (encodeURIComponent) when encoding a query-string value — it also encodes &, = and ?; choose Full URL (encodeURI) to keep URL structure intact and only escape invalid characters.
This distinction trips up many developers: using encodeURI on a parameter breaks values containing &. Everything runs 100% in your browser.
Frequently asked questions
What's the difference between "Component" and "Full URL" scope?
Component (encodeURIComponent) escapes everything except a handful of unreserved characters — use it for a single value like a query parameter. Full URL (encodeURI) leaves structural characters like : / ? & # untouched — use it for a whole URL you want to keep working as a URL.
Why did decoding fail with a "malformed %-sequence" error?
Percent-decoding requires every % to be followed by two valid hex digits, and the resulting bytes must form valid UTF-8. The tool locates exactly where that breaks down and lets you jump straight to it in the input.
What does the query-parameter table do?
It parses the ?key=value pairs from your URL and displays them already decoded so they're readable. Edit any name or value and the URL above is rebuilt automatically with correct escaping.
What is "Per line" mode for?
It treats each line of the input as its own value and encodes or decodes it independently — useful when you paste a whole column of URLs copied from a spreadsheet.
Is any of this sent to a server?
No — encoding, decoding, and the query-parameter table all run locally in your browser; nothing you paste here is uploaded.