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 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).
%XX sequences.encodeURIComponent (default — for query string values, single segments) or encodeURI (for whole URLs that already contain ?, &, /).%XX%YY%ZZ).encodeURIComponent. It encodes /, ?, & too, breaking the URL structure. Use encodeURI for full URLs; encodeURIComponent only for individual values.%20 into %2520. Decode once, then re-encode if needed.+ sign in query strings. Some servers treat raw + as a space. Always encode literal + as %2B in query values.& is HTML; %26 is URL. They're not interchangeable; tools that mix them up break inside href.decodeURIComponent on user-pasted URLs. Malformed sequences throw — wrap in try/catch, fall back to displaying raw input.% already. If your filename literally has a %, encode it as %25 first — otherwise downstream decoders mangle it.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).