🔗 URL Encode / Decode

Percent-encode special characters and Unicode in URLs — or decode %XX sequences back to readable text. Parse query parameters and get full URL structure breakdown. Free, instant, 100% private.

Mode:
Encodes everything incl. / : ? & — use for individual values
Text / URL to encode
🔗

Paste a URL or text above to encode or decode

Supports spaces, special characters, Unicode, and multi-level encoding. Decode one level at a time to unwrap double-encoded URLs. All processing is in your browser — nothing is sent to any server.

Everything You Need for URL Encoding

Encode, decode, parse, and analyze URLs — the complete toolkit for developers working with web APIs and links.

🔒

Encode URLs

Convert spaces, special chars, and Unicode into safe %XX percent-encoded sequences.

🔓

Decode URLs

Instantly convert %20, %3F, %C3%A9 and any percent-encoded sequence back to readable text.

🔀

Component vs Full

Choose between encodeURIComponent (for values) or encodeURI (for complete URLs).

Highlighted Output

Encoded sequences highlighted in blue so you can see exactly which characters changed.

📊

Encoding Stats

Input/output size comparison, expansion ratio, and per-character encoding breakdown chart.

🔍

URL Parser

Paste any URL to see protocol, host, path, query string, and hash broken out visually.

📋

Query Params Table

Every query parameter extracted with both decoded and encoded key/value pairs.

Swap Mode

One click to swap the output back to input and flip between encode and decode.

🔒

100% Private

All processing is in your browser — your URLs never leave your device.

Who Uses This URL Encoder?

Frontend and backend developers, DevOps engineers, QA testers, and anyone who works with web links and APIs.

🌐

API Development

Encode query parameter values before sending them in API requests to avoid malformed URLs.

📧

Email Links

Encode URLs in mailto: links so special characters don't break the email client.

🐛

Debug Encoded URLs

Paste a percent-encoded URL from browser devtools or logs and instantly see what it means.

📱

Deep Links

Encode URLs embedded in app deep links, QR codes, or SMS messages.

📜

curl & HTTP Clients

Prepare correctly encoded URLs for curl, Postman, Insomnia, or any HTTP client.

🔍

SEO & Analytics

Decode UTM parameters and tracking codes from analytics URLs to understand campaign data.

Frequently Asked Questions

Everything about URL encoding, percent-encoding, encodeURI vs encodeURIComponent, and how to fix common URL errors.

What is URL encoding?

URL encoding (also called percent-encoding) converts characters that are not allowed or have special meaning in URLs into a safe format. Each unsafe character is replaced by a % sign followed by two hexadecimal digits representing its UTF-8 byte value. For example, a space becomes %20, and the @ symbol becomes %40. URL encoding is defined in RFC 3986.

What is the difference between encodeURI and encodeURIComponent?

encodeURI is designed to encode a complete URL — it preserves characters that have meaning in URLs: : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Use it when encoding a full URL. encodeURIComponent encodes everything except letters, digits, and - _ . ! ~ * ' ( ) — it encodes all URL structure characters including / : ? & =. Use it for encoding individual query parameter keys and values. This tool lets you choose between both modes.

What characters need to be URL encoded?

Characters that must be encoded in URLs include: spaces (→ %20 or +), special symbols like < > { } | \ ^ ` (unsafe characters), Unicode and non-ASCII characters like accented letters and emoji (→ %C3%A9 for é), and reserved characters like & = + when used as data rather than structure. Letters A-Z, a-z, digits 0-9, and - _ . ~ are always safe and never encoded.

How do I decode a URL with %20 and other percent codes?

Switch to Decode mode and paste the encoded URL. The tool converts all %XX sequences back to their original characters: %20 → space, %2F → /, %3A → :, %3F → ?, %26 → &, %3D → =, %40 → @, %C3%A9 → é. It uses JavaScript's decodeURIComponent function, which handles all standard percent-encoded sequences.

Why do URLs use + instead of %20 for spaces?

There are two ways to encode a space in URLs: %20 (standard percent-encoding per RFC 3986) and + (used in HTML form data, application/x-www-form-urlencoded format). In query strings submitted by HTML forms, spaces become + while %20 is used in the path. Most web servers and frameworks decode both, but they are technically different standards. This tool uses %20 (the RFC 3986 standard).

How do I encode a URL for use in an API call?

For API calls, use Component mode (encodeURIComponent) to encode each query parameter key and value separately — never encode the full URL including the & and = signs between parameters. For example, if your API parameter is search=hello world&filter=price<100, encode each value: search=hello%20world&filter=price%3C100. This tool shows you exactly how each character is encoded and why.

Is it safe to paste private URLs here?

Completely safe. All processing runs in your browser using JavaScript — no URL or data is ever sent to any server. You can safely paste URLs containing API keys, authentication tokens, or private data. The tool works entirely offline once the page loads.

What is the URL structure (protocol, host, path, query, hash)?

A URL has up to 5 parts: Protocol (https:// or http://) identifies the connection method. Host (example.com) is the domain name or IP. Path (/products/item) is the resource location. Query (?key=value&other=value) passes parameters to the server — each key and value should be URL-encoded. Hash (#section) points to an anchor on the page. This tool automatically parses valid URLs and shows each part, plus a table of all query parameters decoded.

How do I encode Unicode characters and emoji in URLs?

Unicode characters (like é, ñ, ü, or emoji like 🚀) must be encoded as UTF-8 bytes in percent-encoding. For example, é (U+00E9) encodes to %C3%A9, and 🚀 (U+1F680) encodes to %F0%9F%9A%80. This happens automatically when you use encodeURIComponent. This tool shows all Unicode characters that were encoded and their percent-encoded equivalents.

What is the difference between URL encoding and Base64 encoding?

URL encoding (percent-encoding) replaces individual unsafe characters with %XX sequences — it's designed for URLs and keeps the text mostly readable. Base64 encoding converts binary data into a 64-character alphabet (A-Z, a-z, 0-9, +, /) — it's designed for transmitting arbitrary binary data (like images or files) through text channels. Base64 significantly increases size (~33%) while URL encoding only expands encoded characters. Use URL encoding for URLs; use Base64 for binary data.

Why does my encoded URL look different from what I expected?

The result depends on which encoding mode you use. In Component mode (encodeURIComponent), characters like / : ? & = are encoded because they are structure characters. In Full URL mode (encodeURI), those characters are preserved since they are valid URL structure. If you're encoding a search query value, use Component mode. If you're encoding a complete URL to embed it as a parameter, also use Component mode on the full URL string.

What are reserved characters in URLs?

RFC 3986 defines two sets of reserved characters in URLs: General delimiters: : / ? # [ ] @ — these separate URL components. Sub-delimiters: ! $ & ' ( ) * + , ; = — used within components. When these characters appear as data (not as structure), they must be percent-encoded. The encodeURIComponent function encodes all reserved characters; encodeURI only encodes unsafe characters and preserves all reserved ones.