URL Encoder / Decoder
Percent-encode special characters for safe URL transmission, or decode %XX sequences back to readable text. Fast, free, and 100% client-side.
Try a sample
Common URL Encoding Reference
| Character | Encoded (%XX) | Notes |
|---|---|---|
| (space) | %20 | Also written as + in HTML form data |
| ! | %21 | Exclamation mark |
| # | %23 | Fragment identifier — always encode in values |
| $ | %24 | Dollar sign |
| & | %26 | Query-string separator — must encode in values |
| ' | %27 | Single quote / apostrophe |
| ( | %28 | Opening parenthesis |
| ) | %29 | Closing parenthesis |
| * | %2A | Asterisk / star |
| + | %2B | Plus — also means space in form encoding |
| , | %2C | Comma |
| / | %2F | Path separator — encode in query values |
| : | %3A | Colon — encode in query values |
| ; | %3B | Semicolon |
| = | %3D | Key-value separator — encode in values |
| ? | %3F | Query string start — encode inside queries |
| @ | %40 | At sign / email |
| [ | %5B | Square bracket |
| ] | %5D | Square bracket |
Free URL Encoder and Decoder — Instant Percent-Encoding Online
Our free URL encoder and decoder converts any text or web address into a safe, standards-compliant percent-encoded string — or reverses the process to turn %XX sequences back into readable characters. Whether you are a developer building API requests, embedding search queries in URLs, debugging encoded webhook payloads, or just trying to read a messy link, this tool handles it instantly — no signup, no server upload, no data stored.
URL encoding is defined in RFC 3986: every character outside the safe set (letters, digits, and - _ . ~) must be replaced by a percent sign followed by its two-digit hexadecimal ASCII code. A space becomes %20, an ampersand becomes %26, and so on. Without encoding, those characters break URL parsing in browsers, HTTP clients, and server frameworks.
We offer two encoding modes. Encode Component uses JavaScript's encodeURIComponent — the right choice for encoding a single query-string value or path segment, because it also encodes structural characters like / : ? & = #. Encode Full URL uses encodeURI, which preserves those structural characters so the URL remains navigable. Use it when you want to encode a complete address without breaking its structure.
How to Use the URL Encoder / Decoder
- 1
Paste your input
Type or paste the text, query string value, or full URL you want to work with. You can also click one of the sample buttons to load a ready-made example.
- 2
Choose an action
"Encode Component" — encodes a single value (query param, path segment). "Encode Full URL" — encodes a whole URL while keeping / : ? & = # intact. "Decode" — converts %XX sequences back to readable characters.
- 3
Enable real-time mode (optional)
Toggle real-time mode to have the result update automatically as you type. The last action you clicked determines whether typing encodes or decodes.
- 4
Copy or chain the result
Click "Copy" to copy the output to your clipboard. Click "Use as input" to feed the result back in — useful for double-encoding or decode-then-re-encode workflows.
Key Features
Dual Encoding Modes
Choose between encodeURIComponent (single values) and encodeURI (full URLs that keep their structure intact).
Real-Time Mode
Toggle live encoding/decoding so results update instantly as you type — ideal for rapid iteration.
Chain Results
"Use as input" feeds the output back in, so you can double-encode, decode-then-encode, or run any multi-step transformation.
One-Click Copy
Copy the full result to your clipboard with a single button click — with visual confirmation.
Clear Error Messages
Invalid percent-sequences show a plain-language error explaining what went wrong — not just a generic failure.
Input Analysis
The tool detects whether your input already contains %XX sequences or special characters and labels them as badges above the input.
Sample Inputs
Four built-in samples cover the most common scenarios — query params, full URLs, encoded strings, and email addresses.
100% Private
Everything runs in your browser via JavaScript built-ins. No data is ever sent to any server.
encodeURI vs encodeURIComponent — Which One to Use?
The two JavaScript encoding functions behave differently for structural URL characters. The table below shows which characters each function encodes (marked ✓) or leaves unchanged (marked –).
| Character | encodeURI | encodeURIComponent | Reason |
|---|---|---|---|
| A–Z a–z 0–9 - _ . ~ | – | – | Always safe, never encoded by either |
| ; , / ? : @ & = + $ # | – | ✓ | URL structure chars — encodeURI preserves them |
| ! ' ( ) * | – | – | RFC 3986 unreserved — safe in both |
| Space | %20 | %20 | Always encoded by both |
| Non-ASCII (e.g. é, 日) | ✓ | ✓ | Always encoded; Unicode becomes UTF-8 %XX |
Rule of thumb: use encodeURIComponent when encoding a single value (like a search keyword, file name, or email address) that will appear inside a URL. Use encodeURI when encoding a complete URL that you want to keep navigable.
Common Use Cases
API Query Strings
Encoding search terms, filter values, or user inputs before appending them to REST API endpoint URLs.
Webhook Payloads
Decoding webhook callback URLs that arrive percent-encoded to inspect the actual parameter values.
Form Action URLs
Encoding form field values before constructing a GET request URL to avoid breaking the query string.
Email Links
Encoding email addresses in mailto: links (user@example.com → user%40example.com) so they parse correctly.
Analytics & Tracking
Encoding UTM parameters that contain spaces, slashes, or ampersands to prevent them from breaking URL parsers.
Browser Address Bar
Decoding a percent-encoded URL copied from the address bar back into a readable, shareable link.
Frequently Asked Questions
🚀Share this tool with friends!
Help others discover this free tool. Share on your favorite platform!
💡 Did you know? QuickToolkit is 100% free, with no ads or signup required!
