🇬🇧 English🇪🇸 Español🇫🇷 Français🇩🇪 Deutsch🇸🇦 العربية🇧🇷 Português
🚀 Explore All Tools
🚀 Explore All Tools

🔗 URL Encoder / Decoder

Encode or decode URLs and components, and parse query strings into readable key-value pairs.

🔐 Everything is processed locally in your browser. URLs and query strings often contain tokens. Nothing is sent to 0Appz or any third party.

📋 Result

📋

How to use this tool

1
⌨️
1. Enter your input
Type, paste or drop your file above.
2
🔒
2. Run in browser
Your files never leave your device.
3
💾
3. Download result
Save or copy instantly, no sign-up.

Overview

URL Encoder Decoder handles all your URL escaping needs in one place. Encode a single component with encodeURIComponent behavior, encode a full URL preserving its structure with encodeURI, decode percent-encoded strings back to readable text, or switch to Query string mode to break a long URL into a readable table of parameters and values. The swap button lets you use the result as the next input for round-trip checks. Everything runs locally in your browser. Nothing is uploaded, which matters because URLs frequently contain API keys, session tokens and personal data. Works on desktop and mobile, in all six languages.

Which encoding mode to use

encodeURIComponent escapes everything except unreserved characters, which is what you need for a single query value, otherwise an ampersand or equals sign inside the value would break the URL. encodeURI preserves the structural characters (:, /, ?, &, =) and is meant for a whole URL. Decoding reverses percent-encoding, and Query string mode parses a full URL into a readable table of parameter/value pairs, which is the fastest way to inspect tracking parameters or debug a malformed link.

Capabilities and constraints

PropertyURL encoder/decoder behavior
ModesencodeURIComponent, encodeURI, decode, query-string table
Round tripSwap button feeds the result back as input
UnicodeFull UTF-8 percent-encoding, including emoji
Query parsingParameters and values in a readable table
Processing100% client-side; nothing uploaded
CostFree, no account, no character limit

Privacy: URLs often carry secrets

API keys, signed links and session tokens frequently travel in query strings. Everything is processed locally: nothing is transmitted, stored or logged, and the page works offline. Treat decoded output as sensitive too.

Encoding gotchas

  • Encode each query value separately; encoding a full URL breaks its separators.
  • Do not double-encode, decode first to check what is already escaped.
  • Spaces become %20 in URLs; plus signs mean space only in form bodies.
  • Signed URLs may become invalid if you re-encode them.
  • Use the query mode to spot tracking parameters before sharing a link.

Related: browse the text tools for Base64, case conversion and counters.

Percent-encoding, reserved characters and query strings

URLs may only contain a limited set of characters, so anything outside that set is percent-encoded: a byte is written as a percent sign followed by two hexadecimal digits. The rules look simple until the details bite. Unreserved characters, letters, digits, hyphen, underscore, dot and tilde. Never need encoding, while reserved characters such as slash, question mark, ampersand and equals have structural meaning and must be encoded only when they are data rather than syntax. That distinction is the source of most bugs: encoding a whole URL with a component-level function turns its separators into data and breaks it, while encoding a query value with a URL-level function leaves an ampersand inside the value and splits it into two parameters. Spaces are a special case: %20 is the correct encoding in a path, while application/x-www-form-urlencoded data traditionally uses +, and mixing the two produces literal plus signs in decoded text. Non-Latin text is encoded as UTF-8 bytes, so a single accented character or Arabic letter becomes two or more percent sequences, and decoding with the wrong charset yields mojibake. Double encoding is the other classic: a value already encoded once is encoded again, and %20 becomes %2520. The practical rule is to encode each component separately with the component function, never the assembled URL, and to decode only once. Everything runs locally in your browser.

Frequently asked questions

What is URL encoding? +

URL encoding (percent-encoding) replaces characters that are not allowed in URLs, like spaces, &, ? and non-ASCII letters, with a % sign and two hexadecimal digits. For example, a space becomes %20.

What is the difference between component and full URL encoding? +

Component encoding (encodeURIComponent) escapes everything except unreserved characters, so it is meant for a single query value. Full URL encoding (encodeURI) keeps the URL structure characters : / ? # & = intact.

Can I decode a full URL with query parameters? +

Yes, use the Query string mode in the URL Encoder Decoder to see every parameter as a readable key-value pair, even inside a long URL.

Can anyone see the strings I encode? +

Yes. Everything is processed locally in your browser with JavaScript. Nothing is uploaded, which matters because URLs often contain API keys and tokens.

🔒 100% browser-based. Your files never leave your device