dedlfix: Umlaute in Adresse + Unterschied ä %E4

Beitrag lesen

echo $begrüßung;

Wenn ich die Variable genau so übergebe, übersetzt mir der Browser
(Firefox) das "ä" durch ein %E4, ein Leerzeichen durch %20.

Für das ä macht er das, weil deine Seite die Kodierung ISO-8859-1 verwendet. Bei UTF-8 beispielsweise wäre es %C3%A4. Ob es für diese Zeichen eine Pflicht zur Kodierung gibt, weiß ich nicht. Doch der FF wird das nicht aus lauter Langeweile machen. Das mit dem Leerzeichen (und einigen anderen Zeichen muss so sein, denn diese haben in URLs eine Sonderbedeutung und müssen umkodiert werden.

Diese URL-Kodierung stellt aber im Allgemeinen kein Problem dar. Oftmals dekodieren die empfangenden Systeme (z.B. PHP) diese Kodierung bereits bevor sie die Daten an das auszuführende Script/Programm weitergeben.

Wie übergeb ich den Inhalt also am besten, oder kann ich das,
auch für Landessprachen ohne Umlaute einfach so lassen?

Verwende generell die für deine Programmierumgebung vorgesehene(n) Funktion(en) zur URL-gerechten Kodierung, wenn du Daten in den URL-Kontext bringst. Beachte auch, dass die URL danach auch nochmal HTML-gerecht kodiert werden muss, wenn sie in einen HTML-Kontext eingefügt wird.

echo "$verabschiedung $name";