Developer tool

URL encoder and decoder

Percent-encode a component or complete URL, or decode it without sending the text to a server.

Encode the right scope

A URL component encoder escapes reserved separators such as question mark, ampersand, equals, slash, and hash because they may be data inside one parameter value. A complete-URL encoder preserves structural separators so the scheme, host, path, query, and fragment remain recognizable.

Percent encoding represents UTF-8 bytes

Characters outside the unreserved ASCII set are first represented as UTF-8 bytes and then written as percent followed by two hexadecimal digits per byte. A visible character can therefore produce several percent sequences.

Plus signs depend on the surrounding format

In `application/x-www-form-urlencoded` query or form data, a plus sign commonly represents a space. In a general URL path, a plus sign can be literal. The decoding option makes that assumption explicit instead of silently changing every plus sign.

Decoding can fail

A percent sign must be followed by a valid encoded byte sequence, and decoded bytes must form valid UTF-8 for this tool. Partial sequences, invalid hexadecimal, or decoding text twice can cause errors or change data unexpectedly.

Encode a value, not an already assembled URL

To place `tea & cake` in a query parameter, component encoding produces `tea%20%26%20cake`, so the ampersand remains data instead of starting another parameter. The surrounding application can then build `?search=tea%20%26%20cake`. Encoding the entire assembled URL as one component would also escape its colon, slashes, question mark, and equals sign, destroying the structure expected by a browser. Decode only the layer you own: a value may legitimately contain `%25`, and decoding twice would turn it into a bare percent sign and possibly reinterpret following characters.

Encoding does not make a URL safe, trusted, private, or authorized. Validate schemes, hosts, redirects, and decoded values in the system that consumes them. This tool does not parse or normalize URL semantics.