Ubify Intelligence Team

EDITORIAL TEAM

~3 min read
~588 words
VERIFIED JUNE 2026

About This Tool

URL encoding (also called percent-encoding) converts characters that are not allowed or have special meaning in a URL into a format that can be safely transmitted. Each unsafe character is replaced by a % followed by its two-digit hexadecimal code. For example: space becomes %20, & becomes %26, = becomes %3D, # becomes %23, and / becomes %2F.

tools.ubify.app encodes and decodes URLs entirely in your browser — no data is transmitted to a server.

URLs can only legally contain a subset of ASCII characters as defined by RFC 3986. Characters fall into three categories. Reserved characters have special meaning in URL structure and must be encoded when used as data: ! * ( ) ; : @ & = + $ , / ? # [ ]. Unreserved characters are safe without encoding: A-Z, a-z, 0-9, hyphen, underscore, period, tilde. Everything else must be percent-encoded, including spaces, non-ASCII characters (accented letters, Chinese, Arabic, emoji), and most punctuation.

The tool supports two encoding modes. Component encoding encodes everything including /, ?, and & — use this for individual query parameter values. Full URL encoding preserves URL structure characters while encoding only unsafe characters within each component — use this for complete URLs. In JavaScript, encodeURIComponent() handles component encoding; encodeURI() handles full URL encoding.

A common confusion: in query strings, a space can be encoded as either %20 or +. The + encoding comes from HTML form submissions. In URL paths (before the ?), only %20 is valid for spaces — a + in a path means a literal plus sign. When in doubt, use %20 — it works in all contexts.

For non-ASCII characters such as accented letters, emoji, or CJK characters, the process is: first convert to UTF-8 bytes, then percent-encode each byte. The euro sign € is UTF-8 bytes E2 82 AC, which encodes as %E2%82%AC. The Japanese character 日 is UTF-8 bytes E6 97 A5, encoding as %E6%97%A5. Our encoder handles all Unicode automatically.

How to Use

  1. 1

    Select Encode or Decode mode using the toggle at the top.

  2. 2

    Paste your URL, text string, or percent-encoded input into the input field.

  3. 3

    For encoding, choose Component mode (for query parameter values) or Full URL mode (for complete URLs).

  4. 4

    Copy the encoded or decoded result from the output panel.

Frequently Asked Questions

What is the difference between encodeURI and encodeURIComponent in JavaScript?

encodeURI encodes a complete URL — it preserves characters with special URL meaning (?, &, /, #, :). encodeURIComponent encodes a URL component like a single query parameter value — it encodes everything including those structural characters. Use encodeURIComponent for values, encodeURI for full URLs.

Why does my encoded URL have + instead of %20 for spaces?

+ for spaces is the HTML form encoding standard (application/x-www-form-urlencoded). Both are accepted in query parameters, but only %20 is valid for spaces in URL paths. Use the Component encoding mode in this tool if you specifically need %20 everywhere.

What causes malformed URL errors?

Common causes: unencoded spaces in paths, unencoded # in query values (the browser interprets it as a fragment identifier), non-ASCII characters that were not percent-encoded, or double-encoding where an already-encoded %20 gets encoded again to %2520.

Can I decode a full URL with query parameters at once?

Yes. Paste the entire URL and the tool decodes all percent-encoded characters throughout the string, including in the path, query parameters, and fragment.

Is this URL encoder free to use?

Yes. Completely free with no account, no usage limits, and all processing happens locally in your browser.