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.
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.
&, =, ?, #, 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.
%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.
%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.
é (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).