Tools / Text und Daten / HTML-Entitäten Kodieren/Dekodieren
Clientseitig

HTML-Entitäten Kodieren/Dekodieren

Sonderzeichen als HTML-Entitäten kodieren oder Entitäten in Klartext dekodieren, um XSS-Lücken und kaputtes Markup in Vorlagen zu vermeiden.

Funktionen

  • Maskiert & < > " ' / und Backtick
  • Kodiert jedes Nicht-ASCII-Zeichen als numerische Entity
  • Dekodiert numerische Entities (dezimal und hex) und gängige benannte
  • Lokal verarbeitet, nichts wird an einen Server gesendet

Wer & und < in HTML nicht maskiert, erzeugt entweder kaputtes Markup oder eine XSS-Lücke, je nachdem, wie der Browser den String interpretiert. Tippen oder fügen Sie Text in das obere Feld ein und klicken Sie auf Kodieren ↓, um unten eine HTML-sichere Fassung zu erhalten. Oder fügen Sie Text voller Entities unten ein und klicken Sie auf Dekodieren ↑, um lesbaren Text zurückzubekommen. Beide Richtungen laufen sofort in Ihrem Browser, in einem zu WebAssembly kompilierten Rust-Modul.

Was HTML-Entities sind

Eine HTML-Entity ist ein Platzhalter für ein Zeichen, das sonst als Markup gelesen würde oder sich nicht zuverlässig eingeben oder übertragen lässt. Sie beginnt mit einem kaufmännischen Und und endet mit einem Semikolon. Die fünf wichtigsten für die Sicherheit: &lt; für <, &gt; für >, &amp; für &, &quot; für das doppelte Anführungszeichen und &#x27; für den Apostroph. Werden sie maskiert, hält der Browser Ihren Inhalt nicht mehr für Tags oder Attributgrenzen.

Benannte und numerische Entities

  • Benannte Entities: lesbare Kürzel wie &copy; (Copyright), &nbsp; (geschütztes Leerzeichen) oder &auml; (ä).
  • Numerische Entities: der Unicode-Codepunkt des Zeichens, dezimal (&#228;) oder hexadezimal (&#xE4;). Sie funktionieren für jedes Zeichen, ob es einen Namen hat oder nicht.

Was der Encoder genau macht

  • & < > werden zu &amp;, &lt; und &gt;.
  • Anführungszeichen: " wird zu &quot;, ' zu &#x27;. Damit ist die Ausgabe auch in Attributwerten mit Anführungszeichen sicher.
  • Schrägstrich und Backtick: / wird zu &#x2F;, ` zu &#96;, eine vorsichtige Wahl aus früheren OWASP-Empfehlungen für nicht vertrauenswürdige Daten.
  • Jedes Nicht-ASCII-Zeichen (Umlaute, ß, typografische Anführungszeichen, Euro-Zeichen, Emoji) wird zu einer dezimalen numerischen Entity: ä ergibt &#228;, ß ergibt &#223;, € ergibt &#8364;. Das Ergebnis ist reines ASCII und übersteht Systeme mit falscher Zeichenkodierung.
  • Buchstaben ohne Umlaut, Ziffern, Leerzeichen und Zeilenumbrüche bleiben unverändert.

Bei deutschem Text sieht man das sofort: „Größe“ wird zu Gr&#246;&#223;e, und die deutschen Anführungszeichen werden ebenfalls zu numerischen Entities. Ein Browser zeigt alles exakt wie das Original an.

Was der Decoder genau macht

  • Alle numerischen Entities, dezimal (&#228;) und hexadezimal (&#xE4;), werden dekodiert.
  • Ein Grundbestand benannter Entities wird dekodiert: amp, lt, gt, quot, apos, nbsp, copy, reg, trade, mdash, ndash, laquo, raquo und hellip.
  • Andere benannte Entities wie &auml;, &szlig; oder &euro; bleiben unverändert stehen. HTML definiert über 2.000 Namen; enthält Ihr Text solche, ersetzen Sie sie durch numerische Entities oder dekodieren Sie mit einem vollständigen HTML-Parser.
  • Dekodiert wird einmal: &amp;lt; wird zu &lt;, nicht zu <. Ein weiterer Klick entfernt eine weitere Ebene bei doppelt maskiertem Text.
  • Zeichenfolgen, die wie eine Entity aussehen, aber kein Semikolon haben, bleiben unverändert.

Typische Anwendungsfälle

  • Kaputtes Markup und XSS verhindern: Benutzereingaben maskieren, bevor sie in eine Seite eingefügt werden.
  • Code in ein CMS einfügen: Ein Snippet mit < und > kodieren, damit es angezeigt statt gerendert wird.
  • E-Mail-Vorlagen: Umlaute als numerische Entities kodieren, damit sie auch dann korrekt erscheinen, wenn ein Mailprogramm den Zeichensatz falsch errät.
  • Exportiertes HTML lesen: Einen String voller &amp; und numerischer Referenzen in lesbaren Text zurückverwandeln.
  • Doppeltes Maskieren aufspüren: Zeigt eine Seite &amp; wörtlich an, Schritt für Schritt dekodieren, um zu sehen, wie oft der Text maskiert wurde.

Im Vergleich zum eigenen Code

Im Produktivcode nutzen Sie die eingebaute Maskierung Ihres Frameworks oder Template-Systems (React, Twig, Jinja und andere maskieren standardmäßig) statt Handarbeit. PHP bietet htmlspecialchars, Python html.escape und html.unescape. Dieses Tool ist für die manuellen Fälle: ein Snippet für Dokumentation vorbereiten, prüfen, was ein Template ausgeben sollte, oder einen maskierten String aus einem Log lesen.

Datenschutz: alles läuft in Ihrem Browser

Der eingefügte Text wird vollständig clientseitig von einem zu WebAssembly kompilierten Rust-Modul kodiert oder dekodiert. Nichts wird hochgeladen, protokolliert oder auf einem Server gespeichert. Das zählt, wenn Ihr Markup interne Texte, Template-Code oder Nutzerdaten enthält. Keine Daten überschreiten eine Netzwerkgrenze, und nach dem Laden funktioniert das Tool sogar offline.

Häufige Fragen

Wird mein Text an einen Server gesendet?
Nein. Kodieren und Dekodieren laufen lokal in Ihrem Browser. Nichts verlässt die Seite.
Warum werden meine Umlaute zu Zahlen?
Der Encoder wandelt jedes Nicht-ASCII-Zeichen in eine numerische Entity um, damit reines ASCII entsteht. Ein Browser zeigt &#228; genau als ä an. Wird Ihre Seite korrekt als UTF-8 ausgeliefert, müssen eigentlich nur &, <, > und Anführungszeichen maskiert werden.
Warum wird &auml; nicht dekodiert?
Der Decoder kennt numerische Entities und einen Grundbestand von 14 benannten Entities. Seltenere Namen werden unverändert gelassen statt geraten.
Entfernt das Dekodieren HTML-Tags?
Nein. Es ersetzt nur Entities durch Zeichen; Tags wie <p> bleiben im Text. Für lesbaren, strukturierten Text wandeln Sie das HTML besser in Markdown um.
Reicht das Kodieren gegen XSS?
Es schützt Text im HTML-Inhalt und in Attributen mit Anführungszeichen. In <script>-Blöcken, in URLs (javascript:-Links) oder in CSS reicht es nicht; dort braucht es jeweils eine eigene Maskierung.
Was ist der Unterschied zur URL-Kodierung?
HTML-Entities schützen Zeichen innerhalb einer Webseite. URL-Kodierung (%20, %3C) schützt Zeichen in einem Link oder Query-String. Dafür gibt es den URL-Encoder und -Decoder.

Verwandte Tools: Für den Wechsel zwischen Inhaltsformaten wandelt das Tool HTML zu Markdown HTML in sauberes Markdown um, und die Markdown-Vorschau geht den umgekehrten Weg.