In HTML haben fünf Zeichen eine eigene Bedeutung: kleiner als, größer als, das Und-Zeichen sowie beide Anführungszeichen. Wer sie als Text anzeigen will, muss sie durch Entities ersetzen — sonst liest der Browser Markup, wo Inhalt gemeint war.
Das Und-Zeichen zuerst zu ersetzen ist dabei entscheidend. Wird es zuletzt bearbeitet, zerstört es die eben erzeugten Entities, weil jede von ihnen selbst mit einem Und-Zeichen beginnt.
Warum das mehr als Kosmetik ist
Nicht ersetzte Zeichen aus Benutzereingaben sind der klassische Weg für Cross-Site-Scripting: Wer einen Kommentar mit einem Skript-Element abschickt, führt ihn bei allen anderen aus, wenn die Ausgabe nicht maskiert wird.
Deshalb maskieren alle gängigen Vorlagensysteme standardmäßig, und das Ausschalten dieser Maskierung ist eine bewusste Entscheidung, die begründet gehört. Diese Seite hilft beim Verstehen und Nachrechnen — die Maskierung selbst gehört in den Code, nicht in die Handarbeit.
Namen oder Nummern
Für viele Zeichen gibt es benannte Entities wie ä für ä, daneben immer die numerische Form ä oder hexadezimal ä. Die Nummern funktionieren für jedes Unicode-Zeichen, die Namen nur für die rund 2 200 im Standard aufgeführten.
In modernem HTML mit UTF-8 als Zeichensatz braucht es für Umlaute und Akzente eigentlich gar keine Entities mehr — sie lassen sich direkt schreiben. Nötig bleiben sie nur für die fünf kritischen Zeichen und für unsichtbare wie das geschützte Leerzeichen.