URL kodieren und dekodieren

Eine Adresse, einen Parameter oder einen Formularkörper prozentkodieren oder zurückholen. UTF-8 entspricht encodeURIComponent. Wenn die Gegenseite eine andere Kodierung nennt, stellen Sie die hier um.

Drei Kodierungen, drei Stellen im Link

Ein Schrägstrich im Pfad muss Schrägstrich bleiben. Im Parameterwert muss er %2F werden. Im Formular ist das Leerzeichen ein +, in der Query meist %20. Die ganze Adresse mit der falschen Funktion zu kodieren, öffnet die falsche Seite.

  • Einzelner Wert entspricht encodeURIComponent. Suchwort, Kennung, Rücksprung.
  • Ganze Adresse entspricht encodeURI. : / ? # bleiben stehen.
  • Formularkörper macht aus dem Leerzeichen ein Plus. Das ist ein POST-Körper, kein Link.

Was oft schiefläuft

Ein echtes Plus im Wert muss %2B sein, sonst liest der Server ein Leerzeichen. & und = im Wert starten sonst den nächsten Parameter. UTF-8 ist die Vorgabe und entspricht encodeURIComponent: Umlaute werden zu Bytes und dann zu % plus zwei Hex-Zeichen. „Größe“ ist also nicht ein einziges Escape. Nennt die Gegenseite eine andere Kodierung, stellen Sie die hier um. Hex prozentkodiert die Rohbytes aus dem Feld.

Eine fertige https://-Adresse nicht als einzelnen Wert kodieren: Doppelpunkt und Schrägstriche verschwinden, der Browser erkennt keine Adresse mehr. Teile kodieren, dann zusammensetzen. Bytes: Zeichenkette in Bytes. Eine andere Schreibweise: Base64.

Fragen

Aus dem Leerzeichen wurde ein Plus

Sie haben den Formularkörper gewählt. Für einen Link nehmen Sie den einzelnen Wert.

Nach dem Dekodieren steht noch %20 da

Die Zeichenkette war zweimal kodiert. Noch einmal dekodieren, bis der Text lesbar ist.