Auge: URL Encoding wann nötig bzw. sinnvoll?

Beitrag lesen

Hallo

Das & Zeichen finde ich häufig im Klartext in URLs, demnach kann es ja nicht reserviert sein,

Doch, das ist es.

trotzdem wird das & Zeichen mit dem Tool zu %26 kodiert.

Du vermischst hier zwei Dinge. Die Maskierung, wie du sie nennst, wird für Werte von URL-Parametern angewendet. Die Maskierung von &als %26 passt also auf ein „&“ als Bestandteil eines Parameterwerts wie z.B. eines Firmennamens „Meier & Sohn“, der als URL-Parameter wie folgt lautete.

http://example.com/auswertung.php?firmenname=Meier%20%26%20Sohn

Das Ampersand „&“ muss allerdings auch in HTML, z.B. als Bestandteil eben einer URL maskiert werden, weil es sonst als Beginn einer Zeichenentität wie z.B. $auml; für „ä“ oder & für „&“ interpretiert würde. Als URL, die im href-Attribut eines Links notiert wird, muss das Ampersand als Trennzeichen für mehrere URL-Parameter nach den HTML-Regeln maskiert werden. Die Maskierung innerhalb eines Parameterwerts bleibt davon unbenommen.

http://example.com/auswertung.php?firmenname=Meier%20%26%20Sohn&plz=00001&ort=Bumsdorf

Ich verstehe nicht warum, ein nicht reserviertes Zeichen dürfte doch eigentlich nicht kodiert werden.

Es kommt auf den Kontext an, welche Zeichen maskiert werden müssen. Speziell das Ampersand hat, wie gezeigt, im Webbereich gleich (mindestens) zwei verschiedene Kontexte, in denen es auf unterschiedliche Weise zu maskieren ist.

Tschö, Auge

--
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett