HTML Form URL Encoding

Encode form data using application/x-www-form-urlencoded rules

Ad placeholder (leaderboard)

application/x-www-form-urlencoded is the wire format browsers use when you submit an HTML form. This tool converts key/value pairs into that body and parses a body back into readable pairs, in your browser.

How it works

Form encoding builds key=value&key2=value2:

  1. Each key and value is encoded independently. Letters, digits, and * - . _ pass through.
  2. A space becomes + (this is the historic form-urlencoded rule, not %20).
  3. Every other character is converted to UTF-8 bytes and each byte is percent-encoded as %XX, so =, &, +, and non-ASCII are all safe.
  4. Pairs are joined with & and each pair is key=value.

Decoding reverses this: split on &, then on the first =, turn every + back into a space, then percent-decode each %XX byte and UTF-8 decode the result.

Tips and examples

Given the pairs:

name=Ada Lovelace
note=1 + 1 = 2

the encoded body is name=Ada+Lovelace&note=1+%2B+1+%3D+2. Note how the literal + and = inside the note value are escaped as %2B and %3D so they are not mistaken for a space or a separator. When decoding, the + between words is restored to a space before any percent-decoding happens — getting that order wrong is the classic form-decoding bug.

Ad placeholder (rectangle)