URL encoder & decoder
Encode a query value or decode a component without form-data surprises.
URL component
Encodes every component separator as UTF-8, up to 195.3 KB. The original plus sign is encoded as %2B.
Result
No result yet. Enter text and choose Encode.
What gets encoded
Encoding uses JavaScript’s encodeURIComponent rules, which is the right level for one query value, path segment or form field. Spaces become %20, and separators such as /,?, & and = are encoded so they stay inside the value. Non-ASCII text is encoded as UTF-8 bytes.
Decoding and plus signs
Decoding reverses percent escapes, not form encoding: a +remains a plus. If you need form semantics, replace plus signs with spaces before decoding. A % must be followed by two hexadecimal digits, and the resulting bytes must form valid UTF-8. Errors identify a malformed sequence or state that the bytes are not valid UTF-8.
Example
Example
a b/c?d=é& encodes toa%20b%2Fc%3Fd%3D%C3%A9%26. Decoding it returns the original text.
Limits and privacy
Up to 200,000 UTF-8 bytes for encoding and 400,000 characters for a percent-encoded input. Text is processed only in this tab and is never uploaded, saved or included in analytics. The output is plain text, so it can be copied or downloaded as a .txt file.