Escape HTML

Über dieses Tool

Dieses Tool wandelt HTML-Sonderzeichen wie & < > " ' in Entities um, damit Text auf einer Webseite als Text erscheint und nicht als Markup gelesen wird. Aus & wird &amp;, aus < wird &lt;. Umgekehrt macht es Entities wie &lt; oder &uuml; wieder lesbar. Die Umwandlung geschieht sofort beim Tippen, und alles läuft in deinem Browser, ohne dass Text gesendet wird.

Wofür du es nutzen kannst

Häufige Fragen

Was bedeutet HTML escapen?

Zeichen, die in HTML etwas auslösen, werden durch Schreibweisen ersetzt, die nur das Zeichen selbst bedeuten, z. B. < durch &lt;. Der Text bleibt derselbe, nur der Browser liest ihn anders. So erscheint Code als Text und wird nicht als Markup ausgeführt.

Welche Zeichen muss ich in HTML maskieren?

Im normalen Text sind es vor allem & und <. In Attributwerten kommen die Anführungszeichen hinzu, weil sie den Wert beenden können. Das Tool ersetzt im Modus „Minimal“ & < > " und ' gemeinsam, das reicht fast immer.

Wie mache ich Entities wieder lesbar?

Auf „Dekodieren“ umschalten und den kodierten Text einfügen. Referenzen wie &lt;, &uuml; oder &#252; werden zu den eigentlichen Zeichen aufgelöst. Unbekannte Namen bleiben unverändert stehen.

Was ist der Unterschied zwischen Minimal und Vollständig?

Minimal ersetzt nur die Zeichen, die in HTML etwas auslösen. Vollständig schreibt zusätzlich alle Nicht-ASCII-Zeichen wie ä, € und Emojis als Entities. Das ist nützlich für E-Mails oder alte Systeme mit unsicherer Zeichencodierung.

Warum wird das Apostroph als &#39; und nicht als &apos; geschrieben?

&apos; gibt es erst seit HTML 5 (und in XML). HTML 4 und alte Programme lesen es nicht, &#39; versteht dagegen jeder.

Was ist der Unterschied zwischen &uuml;, &#252; und &#xFC;?

Alle drei bedeuten dasselbe Zeichen ü: als Name, als Dezimalzahl und als Hexzahl. Namen sind lesbarer, existieren aber nur für manche Zeichen. Zahlen funktionieren immer.

Wird mein Text an einen Server gesendet?

Nein. Die Umwandlung läuft vollständig in deinem Browser. Der Text verlässt dein Gerät nicht.

Schützt Escapen vor jeder Einschleusung?

Nur, wenn das Ergebnis genau dorthin kommt, wofür es erzeugt wurde, hier in HTML-Text oder Attribute. Für JavaScript-Strings, URLs oder CSS gelten andere Regeln, und ein href mit javascript: bleibt auch nach dem Escapen ein Skript.

Hintergrund

In HTML haben einige Zeichen eine besondere Bedeutung. Das Kleiner-als-Zeichen < beginnt ein Tag, das kaufmännische Und & beginnt eine Zeichenreferenz, und in einem Attributwert kann ein Anführungszeichen den Wert beenden. Soll ein solches Zeichen als gewöhnlicher Text erscheinen, ersetzt man es durch eine Zeichenreferenz, auch Entity genannt. Aus < wird &lt;, aus > wird &gt;, aus & wird &amp;, aus " wird &quot;. Der Browser zeigt dann das ursprüngliche Zeichen an, interpretiert es aber nicht als Markup.

Diese Maskierung ist die Grundlage dafür, Code in Artikeln sichtbar zu machen. Sie ist auch eine zentrale Schutzmaßnahme, wenn fremder Text in eine Seite gelangt: Wird Eingabe unmaskiert eingefügt, kann darin enthaltenes Markup als Tag gelesen werden. Wichtig ist, dass der Schutz zum Ort passt. Im Text zwischen Tags zählen vor allem & und <. In Attributwerten müssen zusätzlich die Anführungszeichen maskiert werden, und steht ein Wert ganz ohne Anführungszeichen, beendet schon ein Leerzeichen den Wert. Für JavaScript-Strings, URLs und CSS gelten eigene Regeln, HTML-Entities helfen dort nicht.

Eine Zeichenreferenz kann auf drei Arten geschrieben werden: als Name (&uuml;), als Dezimalzahl (&#252;) oder als Hexzahl (&#xFC;). Alle meinen dasselbe Zeichen. Namen sind besser lesbar, existieren aber nur für einen Teil der Zeichen, Zahlen funktionieren immer. Das einfache Anführungszeichen schreibt man üblicherweise als &#39;, weil &apos; erst ab HTML 5 definiert ist.

Nicht-ASCII-Zeichen wie Umlaute, das Euro-Zeichen oder Emojis müssen in HTML nicht maskiert werden, solange die Seite korrekt als UTF-8 ausgeliefert wird. Sie als Entities zu schreiben ist trotzdem sinnvoll, wenn die Zeichencodierung unklar ist, etwa bei E-Mails, älteren Systemen oder Quelltext in einem reinen ASCII-Editor.

Beim Dekodieren gilt ein festes Verfahren des HTML-Standards. Benannte, dezimale und hexadezimale Referenzen werden in das jeweilige Zeichen umgewandelt. Manche alte Namen funktionieren auch ohne Semikolon, ungültige Nummern ergeben das Ersatzzeichen U+FFFD, und die Nummern 128 bis 159 liest der Browser nach Windows-1252. Unbekannte Namen bleiben unverändert stehen.

Ein häufiger Fehler ist doppeltes Kodieren: Wird bereits kodierter Text noch einmal kodiert, wird aus &amp; dann &amp;amp; und im Browser erscheint die Entity statt des Zeichens. Deshalb weist das Tool auf Text hin, der schon kodiert aussieht. Escapen ersetzt außerdem keine Bereinigung von fremdem HTML und macht keine javascript:-Adresse harmlos. Template-Systeme mit automatischem Escaping erledigen die Maskierung meist von selbst.

⚠️ Bitte beachten

Die Werkzeuge auf dieser Website werden als kostenloses Hobbyangebot bereitgestellt und dienen ausschließlich zur Information und privaten Nutzung. Für die Richtigkeit, Vollständigkeit oder Eignung der Ergebnisse für einen bestimmten Zweck wird keine Gewähr übernommen. Vor Verwendung der Ergebnisse — insbesondere bei finanziellen, rechtlichen oder sicherheitsrelevanten Entscheidungen — sind diese eigenverantwortlich zu prüfen. Eine Haftung für Schäden aus der Nutzung ist ausgeschlossen, soweit dies gesetzlich zulässig ist.