URLs erlauben nur einen begrenzten Zeichensatz. Alles andere — Leerzeichen, Umlaute, &, =, ?, # — muss prozent-kodiert werden: Die UTF-8-Bytes des Zeichens werden als hexadezimale %XX-Paare geschrieben. Ein Leerzeichen wird %20, é wird %C3%A9.
Die Feinheit ist der Kontext: Zeichen wie & und = sind in einer URL legal, dienen aber als Query-String-Trenner. Eine ganze URL zu kodieren und einen einzelnen Parameterwert zu kodieren sind verschiedene Operationen — dieses Tool wendet Komponentenregeln an (wie encodeURIComponent in JavaScript), das Richtige für Einzelwerte.
Die klassische Falle ist Doppelkodierung: Wird ein bereits kodierter Wert erneut kodiert, wird %20 zu %2520. Enthält ein dekodierter Wert noch %-Sequenzen, wurde er vermutlich irgendwo doppelt kodiert.