Wann kodieren
Nur fünf Zeichen haben in HTML-Text und -Attributen Bedeutung: & beginnt eine Entity, < und > begrenzen Tags, und " und ' beenden Attributwerte. Maskieren Sie diese immer, wenn Sie nicht vertrauenswürdigen Text in eine Seite einfügen, und Sie sind vor Markup-Injektion (XSS im HTML-Kontext) sicher. Alles andere, einschließlich Umlaute, Emoji und Symbole, kann in einem UTF-8-Dokument wörtlich geschrieben werden; es als é zu kodieren ist eine Gewohnheit aus der Latin-1-Ära und macht den Quelltext schwerer lesbar.
Drei Arten, ein Zeichen zu schreiben
| Form | Beispiel | Hinweise |
|---|---|---|
| Benannt | é → | 2.125 Namen in HTML5; lesbar, aber in XML ohne DTD funktionieren nur die fünf grundlegenden. |
| Dezimal | é | Funktioniert überall, auch in XML und SVG. |
| Hex | é | Entspricht der Unicode-Codepunkt-Notation U+00E9; ebenfalls universell. |
Fallen
ist ein echtes Zeichen (U+00A0). Es überlebt Kopieren und Einfügen als unsichtbares geschütztes Leerzeichen und lässt Zeichenkettenvergleiche scheitern; der Unicode-Inspektor findet es.- Browser akzeptieren manche alten Entities ohne Semikolon (
©,&), sodass eine URL wie?a=1©=2in einem unmaskierten Attribut zu?a=1©=2wird. Schreiben Sie in Attributen immer&. - Doppeltes Kodieren (
&lt;) erscheint auf der Seite als wörtliches<; einmal kodieren, am Ausgabepunkt. - In JavaScript-Strings werden HTML-Entities nicht dekodiert; verwenden Sie dort
\u00E9, oder setzen SietextContentund lassen das Maskieren ganz weg.
Fragen
Was ist ?
Ein geschütztes Leerzeichen, U+00A0: ein Leerzeichen, das einen Zeilenumbruch verhindert und nicht mit benachbarten Leerzeichen zusammengefasst wird. Nutzen Sie es zwischen einer Zahl und ihrer Einheit (10 km) und sonst nirgends.
Soll ich Umlaute und Akzente kodieren?
Nicht, wenn die Seite als UTF-8 ausgeliefert wird, was jede moderne Seite sollte. Schreiben Sie é direkt. Kodieren Sie nur, wenn die Datei in einem anderen Zeichensatz gespeichert werden könnte oder wenn Sie ein unsichtbares Zeichen im Quelltext sichtbar machen müssen.
Welche Entities funktionieren in XML und SVG?
Nur &, <, >, " und ' sowie numerische Referenzen. Benannte Entities wie © verursachen in XML einen Parse-Fehler, wenn sie nicht deklariert sind.
Wie zeige ich HTML-Code auf einer Webseite?
Kodieren Sie ihn: Jedes < wird zu <, jedes & zu &. Fügen Sie den Code mit der ersten Kodieroption in das Textfeld ein und kopieren Sie die HTML-Ausgabe in einen <pre><code>-Block.