Copied!
Back
Encoding Tool

URL Encoder / Decoder

Encode or decode URLs and query strings using standard percent-encoding (RFC 3986). This free online URL encoder supports both encodeURIComponent and encodeURI modes, handles UTF-8 and Unicode characters, and lets you bulk-encode URL parameters. Paste any URL or text to instantly see the encoded or decoded result. All processing happens in your browser — nothing is uploaded to a server.

url-encoder.tool
0 characters
Output will appear here...

How to use the URL encoder

URL encoding (a.k.a. percent-encoding) escapes characters that have special meaning in URLs — ?, &, =, #, spaces, non-ASCII — so they survive transit through routers, caches, and proxies. The tool runs locally and supports both encodeURIComponent (for query values) and encodeURI (for full URLs).

Common mistakes to avoid

Frequently Asked Questions

What is the difference between encodeURI and encodeURIComponent?
encodeURI encodes a full URI but preserves characters that have special meaning in URLs — like : / / ? # [ ] @ ! $ & ' ( ) * + , ; =. encodeURIComponent encodes everything except unreserved characters (letters, digits, - _ . ~), making it the right choice for encoding individual query parameter values. Use encodeURIComponent for values inserted into a URL, and encodeURI for encoding a complete URL string.
Why do URLs need to be encoded?
URLs can only safely contain a limited set of ASCII characters as defined in RFC 3986. Special characters like spaces, &, =, ?, #, and non-ASCII characters (Unicode / UTF-8) must be percent-encoded to be safely transmitted. Without encoding, these characters would be misinterpreted as URL delimiters or cause parsing errors in browsers and servers.
How do I encode spaces in a URL — plus sign or %20?
Both are valid but in different contexts. %20 is the standard percent-encoding for spaces per RFC 3986 and works everywhere in a URL — path, query, fragment. The plus sign (+) represents a space only in application/x-www-form-urlencoded format, used in HTML form submissions and query strings. For general URL encoding, prefer %20. Use + only when building form-encoded POST bodies.
What is double encoding and how do I avoid it?
Double encoding happens when an already-encoded string is encoded again — for example, %20 becomes %2520 (the % itself gets encoded). This usually occurs when you pass a pre-encoded URL through an encoding function again. To avoid it: encode raw values before inserting them into the URL, never encode a complete URL that already contains percent-encoded characters, or decode first then re-encode once.
How do I URL encode non-ASCII and Unicode characters?
Non-ASCII characters (like é, ñ, 中文, العربية) are first converted to their UTF-8 byte representation, then each byte is percent-encoded. For example, the character é (U+00E9) becomes %C3%A9 in UTF-8. JavaScript's encodeURIComponent handles this automatically. This is the standard defined by RFC 3986 and IRI (RFC 3987).
Does URL encoding affect SEO?
Google can handle URL-encoded characters, but clean, human-readable URLs are preferred for SEO. Excessive percent-encoding makes URLs harder to read, share, and click on in search results. Best practices: use hyphens instead of spaces or underscores, avoid special characters in URL paths, use lowercase, and keep encoding to query parameters where it's actually necessary.