When should you encode URLs?
URL encoding is useful for query strings, API calls, redirects, search parameters, and debugging links that contain spaces, Unicode, or reserved characters.
Use full URL mode when the URL structure should stay readable. Use component mode when encoding a single query value or path segment.
Percent-encoding and reserved characters
Percent-encoding, described in RFC 3986, represents a byte as a percent sign followed by two hexadecimal digits. This tool wraps two native JavaScript functions rather than implementing its own encoder: encodeURI() for Full URL mode and encodeURIComponent() for URL component mode, with matching decodeURI() and decodeURIComponent() for decoding. Both functions convert the input to UTF-8 bytes first, then percent-encode every byte outside their allowed set, which is why one non-ASCII character can expand into several %XX groups; a single emoji becomes four separate percent-encoded bytes.
The two modes differ in which characters they leave untouched. encodeURI assumes the input is already a complete, structurally valid URL, so it leaves the characters that give a URL its shape readable, such as : / ? # &. encodeURIComponent assumes the input is a single value, such as one query parameter, so it escapes those same structural characters too, since a raw & or = inside a value would otherwise be read as a new parameter.
| Character class | encodeURI, Full URL mode | encodeURIComponent, URL component mode |
| Unreserved: A-Z a-z 0-9 - _ . ~ | Left unescaped | Left unescaped |
Reserved: ; / ? : @ & = + $ , # | Left unescaped, since these usually mark URL structure | Escaped, since a raw one would split a single value apart |
| Space | Escaped to %20 | Escaped to %20 |
! ' ( ) * | Left unescaped | Also left unescaped, a long-standing JavaScript quirk, since these count as reserved sub-delimiters under RFC 3986 |
Worked example
The Sample URL button loads https://convertunlimited.com/search?q=hello world 👋&city=กรุงเทพ¬e=café 世界. Encoding it in the two modes gives noticeably different results:
Full URL mode:
https://convertunlimited.com/search?q=hello%20world%20%F0%9F%91%8B&city=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E¬e=caf%C3%A9%20%E4%B8%96%E7%95%8C
URL component mode:
https%3A%2F%2Fconvertunlimited.com%2Fsearch%3Fq%3Dhello%20world%20%F0%9F%91%8B%26city%3D%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%26note%3Dcaf%C3%A9%20%E4%B8%96%E7%95%8C
In Full URL mode, the ://, ?, and & characters that give the address its structure stay readable, while the space and non-Latin text still get percent-encoded. In URL component mode, those structural characters are escaped too, so : becomes %3A, / becomes %2F, and & becomes %26. That is correct for encoding a single query value on its own, but it would break this string if treated as a complete URL, since the slashes and colon that make it a URL disappear into percent-encoded text.
Frequently Asked Questions
Is this URL Encoder free?
Yes. You can encode, decode, copy, and clear text without signup.
Is my URL uploaded?
No. All URL encoding and decoding happens locally in your browser.
What is the difference between full URL and component mode?
Full URL mode keeps URL separators such as : / ? and & readable. Component mode encodes those reserved characters too.
Does it support Unicode and emojis?
Yes. UTF-8 text, emojis, accents, and non-Latin scripts are supported.
What happens with malformed percent-encoding?
The tool shows a friendly warning and keeps your original input.
Why do parentheses and exclamation marks never get encoded?
JavaScript built-in encodeURI and encodeURIComponent both leave ! ' ( ) and * unescaped, even though RFC 3986 classifies them as reserved sub-delimiters. This tool inherits that behavior directly from the native functions.
Does this use a plus sign for spaces like a web form?
No. Both modes always encode a space as %20, matching URI percent-encoding rather than the application/x-www-form-urlencoded convention that uses a plus sign.
Can I paste the component-mode output directly into a browser address bar?
No. Component mode escapes the slashes, colon, and other characters that make a string a URL, so the result only works when inserted as a single value inside a URL you assemble yourself.
Privacy Policy
ConvertUnlimited does not provide a server-side upload endpoint for this URL encoding and decoding flow. Text input is processed locally in your browser.
Terms of Use
ConvertUnlimited is provided as is. Review encoded or decoded output before using it in production systems.
Trust and privacy
Files are processed locally where supported. Review the Trust Center for the processing model and the Privacy Policy for public-site privacy boundaries.