Tools / URL Encoder

URL Encoder / Decoder

Type or paste raw text on the left and see the URL-encoded (percent-encoded) form on the right -- or do it in reverse. Both fields update in real time as you type. Handy for crafting HTTP requests, decoding query parameters, and manipulating form data in web exploitation challenges.

Common encodings reference
CharacterEncodedNotes
%20Space (also + in form data)
!%21Exclamation mark
"%22Double quote
#%23Hash / anchor
$%24Dollar sign
%%25Percent (must be encoded)
&%26Ampersand (param separator)
'%27Single quote
(%28Open paren
)%29Close paren
+%2BPlus (also means space in query)
,%2CComma
/%2FForward slash
:%3AColon
;%3BSemicolon
=%3DEquals (param assignment)
?%3FQuestion mark (query start)
@%40At sign
[%5BOpen bracket
]%5DClose bracket
{%7BOpen brace
}%7DClose brace

How percent-encoding works

URLs can only contain a safe subset of ASCII characters. Any character outside that set -- including spaces, special punctuation, and non-ASCII bytes -- must be represented as a percent sign followed by two hex digits: %XX. For example, a space becomes %20, an equals sign becomes %3D, and an ampersand becomes %26.

In web CTF challenges, percent-encoding is often used to bypass input filters. Injecting %27 instead of a literal single quote can slip past naive keyword blocklists. Double-encoding (encoding the percent sign itself as %25) can bypass a second layer of filtering.

This tool uses the browser's built-in encodeURIComponent and decodeURIComponent functions, which follow RFC 3986. Characters that are unreserved (letters, digits, - _ . ~) are left as-is; everything else is encoded.

Useful for web exploitation challenges in picoCTF -- including SQL injection, XSS filter bypasses, and open-redirect chains. Look for web challenges in the picoCTF 2024 Web Gauntlet writeup for examples of encoding-based bypasses.