Encode or decode any URL, query string, or special character instantly using percent-encoding. Works with encodeURIComponent and full URL modes — free, private, and no signup required.
Use Component mode for query parameter values (like a search term), and Full URL mode when you already have a complete link and only want to escape unsafe characters while keeping / : ? # intact.
Common characters and their percent-encoded equivalents
| Character | Name | Encoded |
|---|---|---|
space | Space | %20 |
! | Exclamation mark | %21 |
" | Double quote | %22 |
# | Hash / fragment | %23 |
$ | Dollar sign | %24 |
% | Percent sign | %25 |
& | Ampersand | %26 |
' | Apostrophe | %27 |
( | Open parenthesis | %28 |
) | Close parenthesis | %29 |
+ | Plus sign | %2B |
, | Comma | %2C |
/ | Forward slash | %2F |
: | Colon | %3A |
; | Semicolon | %3B |
= | Equals sign | %3D |
? | Question mark | %3F |
@ | At sign | %40 |
[ | Open bracket | %5B |
] | Close bracket | %5D |
| Aspect | encodeURI (Full) | encodeURIComponent |
|---|---|---|
| Best for | A complete, already-structured URL | A single value like a query param |
| Leaves untouched | : / ? # [ ] @ $ & + , ; | Only A-Z a-z 0-9 - _ . ! ~ * ' ( ) |
| Encodes spaces | Yes, as %20 | Yes, as %20 |
Encodes & and = | No — needed for query strings | Yes — safe inside a single value |
| Typical use case | Redirecting to a full link | Building a query parameter |
A URL encoder decoder is an online tool that converts text and links into percent-encoded format, and converts percent-encoded text back into its original, human-readable form. Instead of manually looking up hexadecimal codes for every special character, developers, marketers, and SEO professionals can paste any URL, query string, or piece of text into this tool and get an instantly correct, safe-to-use result.
URLs are only allowed to contain a limited set of ASCII characters. Anything outside that set — spaces, ampersands, question marks, accented letters, emojis, or characters from non-Latin alphabets — must be represented using percent-encoding so that browsers, servers, and APIs interpret the link exactly as intended. This free URL Encoder Decoder handles that conversion instantly, in both directions, right in your browser.
Every URL travels through many different systems before it reaches its destination — browsers, proxy servers, load balancers, application servers, and databases. Each of these systems expects a URL to follow a strict, predictable format. If a raw space, ampersand, or non-ASCII character is left unencoded inside a link, it can be truncated, misread as a separator, or rejected outright, breaking the request or redirecting the user to the wrong place.
This is especially important for query strings, where characters like & and
= already have a reserved meaning — they separate parameters and assign values. If your
actual data contains one of these reserved characters, it has to be encoded first, or the server will
misinterpret where one parameter ends and another begins.
Formula:
Percent-Encoded Character = % followed by the two-digit hexadecimal value of the
character's byte in UTF-8
For example, a space has the hexadecimal value 20, so it becomes %20. The ampersand
character has the hexadecimal value 26, so it becomes %26. Characters outside the basic
ASCII range, such as accented letters or emoji, are first converted to their UTF-8 byte sequence, and
each byte is then percent-encoded separately, which is why a single accented character can expand
into two or three %XX groups.
hello world & more!hello%20world%20%26%20more%21https://example.com/search?q=café lattehttps://example.com/search?q=caf%C3%A9%20latte
Modern browsers and programming languages offer more than one encoding function, and choosing the
wrong one is one of the most common mistakes developers make. encodeURIComponent is
designed to encode a single value, such as a search term or a query parameter, and it escapes almost
every character with special meaning in a URL, including & = ? / : #. This makes it the
safest default whenever you are building one piece of a URL rather than the whole thing.
encodeURI, on the other hand, is designed for encoding an entire, already-structured
URL. It intentionally leaves characters like : / ? # [ ] @ $ & + , ; untouched, because
those characters are meant to keep their structural role — separating the protocol, path, query, and
fragment. Using encodeURIComponent on a full URL by mistake will incorrectly encode the
slashes and colons that are supposed to stay intact, breaking the link.
The older escape() function is deprecated and should be avoided — it does not properly
encode non-ASCII characters according to modern UTF-8 standards and can produce URLs that fail on
current browsers and servers. This tool uses the modern, standards-compliant encoding functions
instead.
The URL specification divides characters into two groups. Unreserved characters — uppercase and
lowercase letters, digits, and the symbols - _ . ~ — never need to be encoded because
they have no special meaning anywhere in a URL. Reserved characters, such as
: / ? # [ ] @ ! $
& ' ( ) * + , ; =
, do have a special structural meaning, and whether they need encoding
depends entirely on where they appear. A forward slash is meaningful in the path of a URL but
meaningless — and therefore should be encoded — if it appears inside a parameter value like a
filename or search term.
?q=encodeURIComponent, which also escapes the slashes and colons that should stay intact% into %25 and produces an unreadable, broken link+ sign in a query string traditionally represents a space in some older systems, which can cause confusion when decoding form-submitted data%XX sequences hard to interpretURL encoding is a small but essential part of how the web works — every link with a space, symbol, or non-English character depends on it to travel safely between browsers, servers, and APIs. This free URL Encoder Decoder gives you both Component and Full URL encoding modes, instant decoding, a percent-encoding reference table, and a clear breakdown of exactly what changed, all in one place, in your browser, with nothing ever uploaded or stored.