HTML-Entities-Encoder

Text in HTML-Entitäten maskieren, damit Markup-Zeichen überleben, in Ihrem Browser.

Läuft vollständig in Ihrem Browser. Nichts wird hochgeladen, protokolliert oder gespeichert.

Fünf Zeichen können in HTML nicht wörtlich auftauchen, ohne zu ändern, was das Markup bedeutet: das kaufmännische Und, die beiden spitzen Klammern und die zwei Arten von Anführungszeichen. Sie zu maskieren ist das, was aus einem Stück Text ein Stück Text macht, das ein Browser anzeigt statt befolgt.

Wie es funktioniert

Minimal maskiert nur diese fünf Zeichen. Es ist fast immer die richtige Wahl: Ist Ihre Seite UTF-8 und sind Ihre Dateien UTF-8, braucht ein Buchstabe mit Akzent überhaupt keine Maskierung, und ihn zu maskieren macht den Quelltext ohne Gewinn schwerer lesbar.

Benannte Entitäten ersetzen jedes Zeichen, für das HTML 4.01 einen Namen hat — 252 davon, é als é, © als ©. Nehmen Sie das, wenn die Ausgabe durch etwas hindurch muss, das alles über ASCII verstümmelt, etwa ein altes Mailsystem oder eine Datenbankspalte mit der falschen Kollation.

Numerische Referenzen geben dieselbe Sicherheit über den Codepunkt statt über den Namen, sie funktionieren also für jedes Zeichen statt für die 252 mit Namen. Sie werden hexadezimal mit abschließendem Semikolon geschrieben, und das nimmt jeder Parser an.

Beispiele

Fall Eingabe Ergebnis
Ein Tag, das gezeigt und nicht ausgeführt werden soll <script>alert(1)</script> &lt;script&gt;alert(1)&lt;/script&gt;
Ein kaufmännisches Und in einem Wert Tom & Jerry Tom &amp; Jerry
Ein Buchstabe mit Akzent, benannt café caf&eacute;

Häufige Fragen

Genügt das Maskieren hier, um Benutzereingaben sicher zu machen?

Für Text zwischen Tags und für einen Attributwert in Anführungszeichen ja: Die Anführungszeichen werden mit maskiert. Sonst nein: Ein Wert, der in eine URL, einen Style- oder einen Skriptblock geht, braucht seine eigene Maskierung, und HTML-Entitäten sind für alle drei das falsche Werkzeug. Maskieren Sie an der Stelle der Ausgabe, im Zusammenhang dieser Ausgabe, in Ihrem Code — nicht durch Einfügen in eine Webseite.

Warum wird das Apostroph als &#039; und nicht als &apos; maskiert?

&apos; steht nicht in HTML 4.01. Es kam in XHTML und später in HTML5 hinzu, und alte Browser zeigen es wörtlich. Die numerische Form hat immer überall funktioniert.

Welche benannten Entitäten werden unterstützt?

Die 252 von HTML 4.01. HTML5 definiert rund zweitausend weitere, überwiegend mathematische, und sie sind hier nicht enthalten. Was in dieser Menge keinen Namen hat, bleibt im benannten Modus, wie es ist, oder wird im numerischen Modus über den Codepunkt maskiert.

Muss ich auf einer modernen Seite die Akzente maskieren?

Nein. Deklariert die Seite UTF-8 und ist die Datei als UTF-8 gespeichert, ist é einfach é. Benannte Entitäten sind dafür da, Text durch Systeme zu bringen, die nicht UTF-8-sauber sind.

Gut zu wissen

  • Alles geschieht in Ihrem Browser. Was Sie einfügen, wird nicht hochgeladen, nicht protokolliert und nicht gespeichert.

Quellen

Alle Code Tools