Loopy HQ LogoSupport Us
Free Developer Tool

URL Encoder & Decoder

Encode special characters for safe URL transmission, decode percent-encoded strings, parse URLs into components, and analyze character encoding — all in your browser.

Quick Templates

Why use an online URL encoder and decoder?

URLs can only contain a limited set of ASCII characters. When your URL includes spaces, ampersands, non-Latin characters, or other special symbols, they must be percent-encoded to ensure browsers and servers interpret them correctly. A missing or incorrect encoding can break links, corrupt data, or create security vulnerabilities.

This tool provides three encoding modes (encodeURIComponent for query values, encodeURI for full URLs, and full percent-encoding for maximum safety), batch processing for encoding multiple items at once, a URL parser that breaks complex URLs into readable components, and a character-by-character inspector that shows exactly which characters need encoding and why.

Everything runs client-side in your browser. Your URLs, API keys, tokens, and query strings are never transmitted to any server. The tool works offline after the page loads.

Frequently Asked Questions

What is URL encoding (percent-encoding)?
URL encoding, also called percent-encoding, converts characters into a format safe for transmission in URLs. Each unsafe character is replaced with a "%" followed by two hexadecimal digits representing its byte value in UTF-8. For example: space → %20, ampersand → %26, forward slash → %2F.
What characters need to be URL encoded?
Characters that must be encoded include: • Reserved characters: : / ? # [ ] @ ! $ & ' ( ) * + , ; = • Unsafe characters: spaces, < > { } | \ ^ ~ ` • Non-ASCII characters: accented letters, emoji, CJK characters Unreserved characters that never need encoding: A–Z, a–z, 0–9, hyphen (-), underscore (_), period (.), tilde (~).
Why does a space become %20 in URLs?
The space character (ASCII code 32, hexadecimal 20) is not allowed directly in URLs. Percent-encoding represents it as %20 — the percent sign followed by the hex value of the byte. Note: In HTML form submissions using application/x-www-form-urlencoded, spaces become "+" instead of %20. Both are valid but used in different contexts.
What is RFC 3986 and how does it relate to URL encoding?
RFC 3986 is the Internet standard that defines the syntax of Uniform Resource Identifiers (URIs). It specifies which characters are "unreserved" (safe to use as-is), which are "reserved" (have special meaning), and mandates percent-encoding for all others. Unreserved: A–Z a–z 0–9 - . _ ~ Reserved: : / ? # [ ] @ ! $ & ' ( ) * + , ; =
How do I decode a percent-encoded URL?
Paste the encoded URL into any URL decoder tool (like this one) and it will convert %XX sequences back to their original characters. For example, %2F becomes /, %3A becomes :, and %20 becomes a space. In JavaScript, use decodeURIComponent() for query values or decodeURI() for full URLs.
What is double encoding and how do I avoid it?
Double encoding happens when already-encoded text is encoded again. For example, %20 becomes %2520 (the % gets encoded to %25). To avoid it: always decode first if you're unsure whether text is already encoded, then encode once. This tool's "Auto-detect" feature can help identify already-encoded input.
What is the difference between encodeURI and encodeURIComponent?
encodeURI encodes a complete URL but preserves characters that have structural meaning in URLs: : / ? # [ ] @ ! $ & ' ( ) * + , ; = encodeURIComponent encodes everything except unreserved characters (A–Z, a–z, 0–9, - _ . ~), making it ideal for encoding individual query parameter values. Use encodeURI for full URLs. Use encodeURIComponent for parameter values.
Is URL encoding the same as percent-encoding?
Yes. "URL encoding" and "percent-encoding" refer to the same mechanism defined in RFC 3986. The term "percent-encoding" is the formal name because each encoded character begins with a percent sign (%). "URL encoding" is the more commonly used term in everyday development.
How do I encode a URL with special characters?
To encode a full URL while preserving its structure (://?#), use encodeURI(). To encode a value that goes inside a query parameter, use encodeURIComponent(). Example: if a search query is "hello world & more", encode the value: https://example.com/search?q=hello%20world%20%26%20more
Can I batch encode multiple URLs at once?
Yes! Loopy HQ's URL encoder includes a dedicated Batch Mode. Paste multiple lines of text — each line is encoded or decoded independently. This is perfect for processing lists of URLs, query parameters, or file paths in bulk.
Is my data safe? Does this tool upload my URLs?
Your data never leaves your browser. All encoding and decoding is performed client-side using built-in JavaScript functions. No URLs, text, or personal data are transmitted to any server. You can verify this by using the tool while offline.
How do I URL encode Unicode or emoji characters?
Unicode characters are first converted to their UTF-8 byte representation, then each byte is percent-encoded. For example: • é (U+00E9) → %C3%A9 (2 UTF-8 bytes) • 😀 (U+1F600) → %F0%9F%98%80 (4 UTF-8 bytes) JavaScript's encodeURIComponent() handles this automatically.