URL Encode Decode percent
Convert spaces, non-ASCII characters, and reserved symbols to percent-encoding, or decode them back to readable text.
What this tool does
A URL may only contain a limited set of characters. Letters, digits, and a few marks such as hyphen, underscore, period, and tilde are allowed directly; everything else has to be encoded. Spaces, non-ASCII characters, and reserved symbols such as ampersand, equals, question mark, and hash carry structural meaning, so leaving them raw inside a value breaks the address.
Percent-encoding solves this by splitting the character into bytes and writing each byte as a percent sign followed by two hexadecimal digits. A space becomes %20, and a single Korean character, which takes three bytes in UTF-8, becomes three groups such as %EA%B2%80.
The tricky part is that two conventions coexist. RFC 3986 and JavaScript encodeURIComponent encode a space as %20, while HTML form submission using application/x-www-form-urlencoded encodes it as a plus sign. Query strings frequently mix the two, which is a common source of corrupted values, so it is worth confirming which rule applies to the data you are handling.
When to use it
Use it when building links that contain search terms or non-ASCII text, when placing values with special characters into API query parameters, when passing a redirect address as a parameter of another URL, or when working out what a string such as %EA%B2%80 in a log or address bar actually says.
Input and output examples
search term test
search%20term%20test
Spaces become %20 under the RFC 3986 convention.
a+b c&d=e
a%2Bb%20c%26d%3De
Plus, ampersand, and equals must be encoded inside a value so the parameters are not split apart.
%ED%95%9C%EA%B8%80
Korean text restored
Decoding direction, used when reading values copied from logs or the address bar.
Notes and limitations
Never encode an entire URL at once: the slashes in https:// and the ampersands separating parameters would be encoded too, breaking the address. Encode individual parameter values only. Encoding an already encoded string produces double encoding, where the percent sign itself becomes %25; if a value looks unexpectedly long, check for this. Finally, a value whose spaces were encoded as plus signs will keep those plus signs if you decode it with the %20 convention.
Frequently asked questions
When is a space %20 and when is it a plus sign?
URL paths and general query encoding (RFC 3986) use %20, while HTML forms sending application/x-www-form-urlencoded use a plus sign. The correct choice depends on how the server parses the request.
Why does one character become three %XX groups?
Percent-encoding encodes bytes rather than characters, and many non-ASCII characters occupy three bytes in UTF-8.
The decoded text looks corrupted.
The original was probably encoded from a non-UTF-8 charset such as EUC-KR. This tool decodes as UTF-8, so legacy values need to be converted in an environment that supports the original charset.