Skip to content

Kostenloser HTML-Entity-Encoder — HTML escapen

HTML-Entities kodieren und Sonderzeichen escapen (< > & " ') — online, kostenlos, ohne Anmeldung, 100 % im Browser. Benannte, dezimale oder Hex-Ausgabe; nichts wird hochgeladen.

Kein Tracking Läuft im Browser Kostenlos

Dein Text wird lokal in deinem Browser kodiert und niemals hochgeladen, protokolliert oder gespeichert. Er bleibt auf diesem Gerät.

Optionen · Format- und Kodierungsoptionen
Entity-Format
0 Zeichen
Kodiertes HTML
0 Zeichen
Geprüft auf Korrektheit der Entity-Kodierung gemäß Spezifikation (benannt / dezimal / hex), XSS-sicheres Escaping aller fünf Sonderzeichen in HTML- und Attributkontexten, die kompatibilitätssichere '-Apostroph-Konvention, die Privatsphäre der Eingabe ohne Netzwerk/ohne Speicherung sowie Barrierefreiheit (beschriftete Steuerelemente, Live-Region-Ansagen bei Kodierung und Kopie). — Go Tools Encoding Team · Jun 17, 2026

Was ist HTML-Entity-Kodierung?

HTML-Entity-Kodierung — auch HTML-Escaping genannt — ist der Vorgang, Zeichen mit besonderer Bedeutung in HTML durch eine sichere textuelle Darstellung namens Entity zu ersetzen, sodass der Browser sie als reinen Text anzeigt, statt sie als Markup zu interpretieren. Die fünf wichtigsten Zeichen sind die, mit denen HTML ein Dokument strukturiert: die spitzen Klammern < und >, die Tags öffnen und schließen, das kaufmännische Und &, das eine Entity beginnt, und die Anführungszeichen " und ', die Attributwerte begrenzen. Wenn eines davon in Inhalt erscheint, der angezeigt statt ausgeführt werden soll, muss es escaped werden, sonst liest der Browser die Seite falsch — bestenfalls rendert dein Text fehlerhaft, schlimmstenfalls schleust ein Angreifer ein <script>-Tag ein.

Es hilft, präzise zu sein, was dieses Tool tut. Es kodiert Text in Entities; es baut oder formatiert kein Dokument. Wenn du eine Zeichenkette aus Code als reinen Text auf einer Seite lesen willst oder Benutzereingaben in dein HTML einfügst und sie neutralisieren musst, ist dies das richtige Tool. Wenn du stattdessen vorhandenes Markup einrücken und aufräumen willst, ist das die Aufgabe des HTML-Formatierers; und um Entities zurück in Zeichen zu verwandeln, verwende den HTML-Entity-Decoder.

Es gibt drei Arten, eine Entity zu schreiben, und sie sind austauschbar. Eine benannte Referenz verwendet ein menschenfreundliches Label (< für <, © für ©); eine dezimale numerische Referenz schreibt den Unicode-Codepunkt des Zeichens zur Basis 10 (< für <); und eine hexadezimale Referenz schreibt denselben Codepunkt zur Basis 16 (< für <) und entspricht der U+XXXX-Notation des Unicode-Standards. Benannte Entities lesen sich am besten, existieren aber nur für Zeichen mit definiertem Namen; numerische Entities können jeden Codepunkt darstellen, weshalb sie der sichere Rückfall sind. Die Tabelle unten listet die Entities, zu denen du am häufigsten greifst:

| Zeichen | Benannt | Dezimal | Hex | |-----------|-------|---------|-----| | < | &lt; | &#60; | &#x3C; | | > | &gt; | &#62; | &#x3E; | | & | &amp; | &#38; | &#x26; | | " | &quot; | &#34; | &#x22; | | ' | &#x27; | &#39; | &#x27; | | (Leerzeichen) | &nbsp; | &#160; | &#xA0; | | © | &copy; | &#169; | &#xA9; | | ® | &reg; | &#174; | &#xAE; | | ™ | &trade; | &#8482; | &#x2122; | | € | &euro; | &#8364; | &#x20AC; | | £ | &pound; | &#163; | &#xA3; | | — | &mdash; | &#8212; | &#x2014; | | – | &ndash; | &#8211; | &#x2013; | | … | &hellip; | &#8230; | &#x2026; | | é | &eacute; | &#233; | &#xE9; |

Beachte, dass der Apostroph als ' (oder ') statt als ' geschrieben wird: Das benannte ' wurde erst mit HTML5 und XML standardisiert und ist in älteren HTML4-Parsern unsicher, daher ist die numerische Form — überall verstanden — die kompatible Wahl. Dieses Tool folgt derselben Konvention wie die weit verbreitete Bibliothek he, weshalb die Standardausgabe für ' ' ist.

Die Unterscheidung zwischen einem Zeichensatz und einer Entity ist es wert, festgehalten zu werden, denn sie erklärt die Option „Alle Nicht-ASCII kodieren“. Ein Zeichensatz (wie UTF-8) bestimmt, wie Zeichen als Bytes gespeichert werden; eine Entity ist eine Möglichkeit, ein Zeichen nur mit den reinen ASCII-Zeichen & # ; sowie Buchstaben oder Ziffern zu schreiben. Auf einer modernen UTF-8-Seite sind é, — und 😀 gültige rohe Zeichen und brauchen überhaupt keine Entity — weshalb der Standardmodus sie in Ruhe lässt. Du erzwingst sie nur in Entities, wenn der Text durch ein System muss, das rohes UTF-8 nicht verarbeiten kann, wobei dann jeder Nicht-ASCII-Codepunkt als ASCII-sichere numerische oder benannte Referenz umgeschrieben wird. Und weil all dies in deinem Browser läuft, überquert das Markup, das du escapst — selbst eine private Vorlage oder ein unveröffentlichter Entwurf — niemals das Netzwerk. Für verwandte Umwandlungen kümmern sich die Tools JSON Escape und Base64 Encode / Decode um das Escapen für JavaScript-Zeichenketten bzw. den binärsicheren Transport.

// Server-side templates auto-escape, but when you build HTML by hand you must escape yourself.
// The five reserved characters and their safe entities:
//   <  →  &lt;     >  →  &gt;     &  →  &amp;     "  →  &quot;     '  →  &#x27;

// Node.js — escape untrusted input before inserting it into HTML element content.
function escapeHtml(str) {
  return str
    .replace(/&/g, '&amp;')   // & first, so later entities are not double-escaped
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;')
    .replace(/"/g, '&quot;')
    .replace(/'/g, '&#x27;'); // numeric form — safe in HTML4, HTML5 and XML
}

const userInput = `<a href="x">Tom & Jerry's</a>`;
const safe = escapeHtml(userInput);
// → &lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;
document.getElementById('out').innerHTML = `<p>${safe}</p>`; // renders as literal text

// ---------------------------------------------------------------
// In practice, prefer the platform's built-in escaping where it exists:
//   - React / Vue / Angular escape interpolated text by default
//   - Use textContent instead of innerHTML when you only need text:
//       el.textContent = userInput;  // the browser escapes for you
//   - Server frameworks (Jinja, ERB, Blade) auto-escape unless you opt out

Hauptfunktionen

Escapt die fünf reservierten Zeichen korrekt

< > & " ' werden exakt so in ihre sicheren Entities umgewandelt, wie es eine gehärtete XSS-Schutz-Bibliothek täte — einschließlich des kompatibilitätssicheren ' für den Apostroph statt des HTML4-unsicheren '. Das ist die genaue Menge, die nicht vertrauenswürdige Eingaben in HTML-Element- und Attributkontexten neutralisiert.

Benannte, dezimale und Hex-Ausgabe

Erhalte dieselben Zeichen als lesbare benannte Entities (<, ©), dezimale numerische Referenzen (<) oder hexadezimale Referenzen (<). Wähle die Form, die dein verarbeitendes System erwartet; alle drei lösen beim Parsen zu identischen Zeichen auf.

Optionaler Modus „Alle Nicht-ASCII kodieren“

Standardmäßig werden nur die reservierten Zeichen escaped, sodass Akzente und Emoji als lesbares rohes UTF-8 bleiben. Aktiviere ein Kästchen, um jeden Codepunkt oberhalb von 0x7F für Legacy-Zeichensätze oder Systeme, die UTF-8 verstümmeln, in eine ASCII-sichere Entity umzuwandeln.

Live-Kodierung in Echtzeit

Die Ausgabe aktualisiert sich beim Tippen — kein Absenden-Knopf, keine Roundtrip-Latenz. Füge einen großen Markup-Block ein und das escapte Ergebnis erscheint sofort, bereit zum Kopieren.

Integrierte Entity-Schnellreferenz

Eine Referenztabelle der gängigsten Entities — die reservierten fünf plus ©, ®, ™, €, —,   und mehr — sitzt direkt auf der Seite in benannter, dezimaler und Hex-Form, sodass du eine Entity nie woanders nachschlagen musst.

Ein-Klick-Wechsel zum Decoder

„Richtung tauschen“ springt direkt zum HTML-Entity-Decoder, um die Operation umzukehren. Kodieren und Dekodieren sind exakte Umkehrungen, sodass du Text verlustfrei hin- und herführen kannst.

100 % privat, nur im Browser

Alle Kodierung geschieht auf deinem Gerät mit JavaScript — keine Netzwerkanfragen, kein Logging, kein Speichern, überprüfbar in den DevTools → Netzwerk. Privates Markup, E-Mail-Vorlagen und unveröffentlichte Entwürfe verlassen niemals den Tab.

In 15 Sprachen verfügbar

Die gesamte Oberfläche — Beschriftungen, Anleitungen und Hinweise — ist in 15 Sprachen lokalisiert, sodass das Tool und sein Escaping-Rat klar sind, egal wo dein Team arbeitet.

Praktische Beispiele

Ein HTML-Snippet escapen (der Standardmodus „Sonderzeichen“)

<a href="x">Tom & Jerry's</a>
&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;

Im Standardmodus „Sonderzeichen“ schreibt der Encoder nur die fünf Zeichen um, die im HTML-Markup eine Bedeutung tragen: < wird zu <, > wird zu >, & wird zu &, " wird zu ", und ' wird zu '. Der Apostroph wird als numerisches ' statt als benanntes &apos; ausgegeben, weil &apos; in HTML4 nicht definiert ist und ältere Parser daran scheitern können, während die Hex-Form überall verstanden wird. Nach dem Kodieren rendert der Browser die Zeichenkette als reinen Text — das <a>-Tag wird angezeigt, nicht angeklickt — und genau so zeigst du Markup sicher innerhalb einer Seite.

Nicht-ASCII-Zeichen bleiben im Standardmodus erhalten

Visit our café — it's 😀
Visit our café — it&#x27;s 😀

Der Modus „Sonderzeichen“ berührt nur die fünf reservierten HTML-Zeichen, sodass akzentuierte Buchstaben (café), der Gedankenstrich (—) und Emoji (😀) unverändert durchlaufen. Das hält die Ausgabe lesbar und schlank, was du für UTF-8-Seiten willst, die bereits <meta charset="utf-8"> deklarieren. Nur der Apostroph in „it's“ wird escaped, zu '. Wenn du für einen Legacy-Zeichensatz jedes Nicht-ASCII-Zeichen in eine Entity umwandeln musst, aktiviere „Alle Nicht-ASCII-Zeichen kodieren“ — siehe das Beispiel unten.

Dezimale numerische Entities

<>&"'
&#60;&#62;&#38;&#34;&#39;

Stellt man das Format auf Dezimal, wird jedes Sonderzeichen als dezimale numerische Zeichenreferenz geschrieben: < ist <, > ist >, & ist &, " ist ", und ' ist '. Dezimale Entities sind die am breitesten kompatible numerische Form — jeder konforme HTML- und XML-Parser versteht sie — was sie zur sicheren Wahl macht, wenn du nicht sicher sein kannst, ob das verarbeitende System benannte Entities wie © unterstützt.

Hexadezimale numerische Entities

<>&"'
&#x3C;&#x3E;&#x26;&#x22;&#x27;

Das Hex-Format schreibt jedes Zeichen als hexadezimale numerische Referenz: < ist <, > ist >, & ist &, " ist ", und ' ist '. Hex und Dezimal sind austauschbar — beide referenzieren denselben Unicode-Codepunkt —, aber Hex bildet sich eins zu eins auf die U+XXXX-Notation ab, die du im Unicode-Standard siehst, weshalb viele Entwickler diese Form bevorzugen, wenn sie konkrete Codepunkte dokumentieren oder durchdenken.

Alle Nicht-ASCII-Zeichen kodieren

café
caf&eacute;  (named)  ·  caf&#233;  (decimal)  ·  caf&#xE9;  (hex)

Aktiviere „Alle Nicht-ASCII-Zeichen kodieren“ und jeder Codepunkt oberhalb von 0x7F wird in eine Entity umgewandelt, nicht nur die fünf reservierten. Das é in café wird je nach gewähltem Format zum benannten é, zum dezimalen é oder zum hexadezimalen é — alle drei referenzieren dasselbe Zeichen, U+00E9. Dieser Modus ist für Seiten gedacht, die in einem Nicht-Unicode-Zeichensatz ausgeliefert werden, oder für Systeme, die rohes UTF-8 verstümmeln, wo das Erzwingen aller Zeichen in 7-Bit-sichere ASCII-Entities garantiert, dass der Text den Transport unversehrt übersteht.

So verwendest du den HTML-Entity-Encoder

  1. 1

    Füge dein HTML oder deinen Text ein

    Lege das Markup oder den reinen Text, den du escapen willst, in das Eingabefeld. Die kodierte Ausgabe aktualisiert sich live, während du tippst — es gibt keinen Absenden-Knopf und nichts wird irgendwohin gesendet.

  2. 2

    Wähle das Entity-Format

    Benannt ist der lesbare Standard (<, &, ©). Wechsle zu Dezimal (<) oder Hex (<), wenn ein verarbeitendes System numerische Referenzen bevorzugt oder du nicht garantieren kannst, dass benannte Entities unterstützt werden.

  3. 3

    Optional alle Nicht-ASCII kodieren

    Lass dies für moderne UTF-8-Seiten aus, damit Akzente und Emoji als lesbare rohe Zeichen bleiben. Aktiviere es nur, wenn der Text einen Legacy-Single-Byte-Zeichensatz überstehen muss, was jedes Zeichen oberhalb von 0x7F in eine ASCII-sichere Entity umwandelt.

  4. 4

    Kopiere das kodierte Ergebnis

    Klicke auf Kopieren, um die escapte Zeichenkette in deine Zwischenablage zu legen, bereit zum Einfügen in eine Vorlage, eine Dokumentationsseite oder ein Datenbankfeld. Leeren setzt beide Bereiche für das nächste Snippet zurück.

  5. 5

    Die Umkehrung nötig? Richtung tauschen

    Nutze „Richtung tauschen“, um zum HTML-Entity-Decoder zu wechseln, wenn du Entities zurück in die Zeichen verwandeln willst, die sie repräsentieren.

Häufige Fehler beim HTML-Kodieren

Das kaufmännische Und zuletzt escaped, was zu Doppel-Escaping führt

Wenn du < und > vor & ersetzt, wird das & der gerade erzeugten Entities erneut escaped, sodass < zu &lt; wird und als wörtlicher Text rendert. Escape immer zuerst &.

✗ Falsch
replace < and > first, then &  →  &lt;  becomes  &amp;lt;
✓ Richtig
escape & first, then the rest  →  &lt;  stays  &lt;

' für den Apostroph in Legacy-Kontexten verwendet

' ist in HTML4 undefiniert und einige E-Mail-Clients zeigen es wörtlich. Verwende das numerische ' oder ', das jeder Parser versteht, wenn du auf ältere oder gemischte Umgebungen zielst.

✗ Falsch
It&apos;s here  →  may render as  It&apos;s here
✓ Richtig
It&#x27;s here  →  renders as  It's here

Die Daten doppelt kodiert

Bereits escapten Text erneut durch den Encoder zu schicken, kodiert ihn doppelt: & wird zu &amp; und der Benutzer sieht & statt &. Escape genau einmal, zum Ausgabezeitpunkt.

✗ Falsch
&amp;  encoded again  →  &amp;amp;  shows as  &amp;
✓ Richtig
&amp;  left as-is  →  renders as  &

HTML-Escaping für einen URL- oder JavaScript-Kontext verwendet

HTML-Entities machen einen Wert nicht sicher innerhalb einer URL oder eines Inline-Skripts. Ein Leerzeichen in einer URL braucht %20, und eine Zeichenkette in JavaScript braucht JS/JSON-Escaping. Passe die Kodierung dorthin an, wo der Wert landet.

✗ Falsch
href="/search?q=a&amp;b c"  →  the space still breaks the URL
✓ Richtig
href="/search?q=a%26b%20c"  →  URL-encoded, valid

Nicht-ASCII auf einer UTF-8-Seite unnötig kodiert

café auf einer modernen UTF-8-Seite in café zu zwingen, bläht die Quelle auf und schadet ohne Nutzen der Lesbarkeit. Lass Nicht-ASCII roh, es sei denn, ein Legacy-Zeichensatz erfordert wirklich Entities.

✗ Falsch
caf&eacute; on a UTF-8 page  →  needless, harder to read
✓ Richtig
café on a UTF-8 page  →  valid and clean

Vergessen, Anführungszeichen innerhalb eines Attributwerts zu escapen

Ein unescaptes " in ein Attribut einzufügen, lässt den Wert ausbrechen und neue Attribute einschleusen — ein XSS-Vektor. Escape im Attributkontext immer " (und idealerweise '), was dieses Tool standardmäßig tut.

✗ Falsch
title="He said "hi""  →  attribute breaks out
✓ Richtig
title="He said &quot;hi&quot;"  →  contained

Wer dieses Tool nutzt

Codebeispiele auf einer Webseite anzeigen
Schreibst du ein Tutorial oder eine Dokumentation, die wörtliches HTML zeigen muss? Escape das Snippet, damit <strong>bold</strong> als Text erscheint, statt zu rendern. Füge das Markup ein, kopiere die escapte Ausgabe und lege sie in einen <pre>- oder <code>-Block.
Benutzereingaben gegen XSS bereinigen
Bevor du irgendeine benutzergelieferte Zeichenkette in dein HTML einfügst, escape die fünf reservierten Zeichen, damit eine Payload wie <script>…</script> zu inertem Text wird. Das ist die grundlegende Abwehr gegen Cross-Site-Scripting, wenn du Markup von Hand baust.
Markup in einem Datenbankfeld oder JSON speichern
Musst du ein HTML-Fragment als reine Zeichenkette speichern, ohne dass es nachgelagert interpretiert wird? Kodiere es zuerst, damit spitze Klammern und kaufmännische Und Speicherung und erneute Anzeige unversehrt überstehen, und dekodiere es auf dem Rückweg.
E-Mail-Vorlagen und CMS-Inhalte verfassen
E-Mail-Clients und Content-Management-Systeme sind unnachgiebig bei rohen Sonderzeichen. Escape die reservierte Menge — und optional alle Nicht-ASCII — damit deine Vorlage konsistent über Clients hinweg rendert, die deinen Zeichensatz womöglich nicht teilen.
Text für einen Legacy-Zeichensatz umwandeln
Zielst du auf ein System, das rohes UTF-8 nicht verarbeiten kann? Schalte „Alle Nicht-ASCII kodieren“ ein, um jeden akzentuierten Buchstaben, jedes Symbol und jedes Emoji als ASCII-sichere Entity umzuschreiben und zu garantieren, dass der Text den Transport durch 7-Bit-saubere Pipelines übersteht.
XML- und SVG-Attributwerte escapen
XML und Inline-SVG teilen sich HTMLs reservierte Zeichen. Kodiere Anführungszeichen und spitze Klammern, damit sich eine Zeichenkette mit eingebettetem Markup sicher in einen Attributwert einfügt, ohne die Dokumentstruktur zu zerbrechen.
Eine Entity schnell nachschlagen
Vergessen, ob das Markenzeichen ™ oder ™ ist? Tippe das Zeichen, lies seine benannte, dezimale und Hex-Entity aus der Ausgabe ab oder konsultiere die integrierte Schnellreferenztabelle, ohne die Seite zu verlassen.

Wie der Encoder funktioniert

Modus „Sonderzeichen“ (Standard)
Standardmäßig werden nur die fünf HTML-reservierten Zeichen escaped — & < > " ' — gemäß den WHATWG-Serialisierungsregeln für sichere Ausgabe. & wird zuerst ersetzt, damit die für die anderen Zeichen erzeugten Entities nicht doppelt escaped werden. Alle übrigen Zeichen, einschließlich Nicht-ASCII, laufen unverändert durch.
Der Apostroph verwendet '
Statt des benannten ' — das in HTML4 undefiniert und in einigen Legacy-Parsern unsicher ist — wird das einfache Anführungszeichen als numerisches ' (dezimal ') ausgegeben und referenziert U+0027. Das entspricht der Konvention gut getesteter Bibliotheken wie he und garantiert, dass die Ausgabe in HTML4, HTML5 und XML gleichermaßen sicher ist.
Benannte, dezimale und Hex-Kodierung
Der Format-Selektor steuert, wie jedes escapte Zeichen geschrieben wird: Benannt verwendet definierte Labels, wo sie existieren (<, ©), Dezimal schreibt den Unicode-Codepunkt zur Basis 10 (<), und Hex schreibt ihn zur Basis 16 (<). Numerische Formen referenzieren dieselben Codepunkte wie die benannten Formen und sind beim Parsen austauschbar.
Option „Alle Nicht-ASCII kodieren“
Wenn aktiviert, wird jedes Zeichen mit einem Codepunkt oberhalb von 0x7F im gewählten Format in eine Entity umgewandelt — café wird zu café (benannt), café (dezimal) oder café (hex). Astrale Zeichen wie Emoji werden mit ihrem vollen Codepunkt kodiert (😀 → 😀). Das erzeugt 7-Bit-saubere ASCII-Ausgabe für Legacy-Transport.
Zeichensatz versus Entities
Ein Zeichensatz definiert, wie Text als Bytes gespeichert wird; eine Entity ist eine Möglichkeit, ein Zeichen nur mit ASCII zu schreiben. Auf einer UTF-8-Seite brauchen Nicht-ASCII-Zeichen keine Entity, weshalb der Standard sie roh lässt. Alles zu kodieren ist nur nötig, wenn die Ausgabe einen Nicht-Unicode-Zeichensatz oder ein UTF-8-feindliches System durchqueren muss.
Browser-lokal, null Netzwerk
Die Kodierung läuft synchron in JavaScript im Hauptthread; es gibt keinen API-Aufruf, keinen Worker-Roundtrip zu einem Server und keine Persistenz. Die Eingabe verlässt nie die Seite, was du bestätigen kannst, indem du beim Tippen ein leeres Netzwerk-Panel beobachtest.

Best Practices für HTML-Escaping

Bei der Ausgabe escapen, im richtigen Kontext
Kodiere Daten in dem Moment, in dem du sie in HTML einfügst, nicht beim Empfang, und passe die Kodierung an den Kontext an. HTML-Entity-Kodierung ist für HTML-Element- und Attributinhalt; verwende URL-Kodierung innerhalb von URLs und JavaScript/JSON-Escaping innerhalb von Skriptblöcken. Im falschen Kontext zu escapen lässt ein Loch offen.
Nicht vertrauenswürdige Eingaben immer escapen
Jede Zeichenkette, die von einem Benutzer, einem Upload oder einer externen API stammt, muss escaped werden, bevor sie in deinem Markup landet. Das ist die zentrale XSS-Abwehr: Eine Payload wie <script>alert(1)</script> wird zu inertem Text, sobald die spitzen Klammern Entities sind.
Eingebautes Escaping bevorzugen, wo es existiert
React, Vue und die meisten serverseitigen Templating-Engines escapen interpolierten Text automatisch; das Setzen von element.textContent escapt ebenfalls für dich. Verwende dieses Tool für einmalige Umwandlungen und zum Verständnis der Ausgabe — aber im Anwendungscode stütze dich auf das Auto-Escaping des Frameworks, statt es selbst zu schreiben.
Nicht-ASCII auf UTF-8-Seiten roh lassen
Wenn deine Seite <meta charset="utf-8"> deklariert, kodiere Akzente und Emoji nicht in Entities — rohes UTF-8 ist kürzer, lesbarer und genauso korrekt. Reserviere „Alle Nicht-ASCII kodieren“ für die echten Legacy-Zeichensatz-Fälle, die es tatsächlich erfordern.
Den numerischen Apostroph in gemischten Kontexten nutzen
Wenn die Ausgabe von älteren Parsern, XML-Prozessoren oder E-Mail-Clients verarbeitet werden könnte, bevorzuge das numerische ' gegenüber dem benannten ' für das einfache Anführungszeichen. Die numerische Form wird überall verstanden; die benannte nicht, und ein versehentliches wörtliches „'“ im gerenderten Text ist ein häufiger, vermeidbarer Fehler.

Häufig gestellte Fragen

Wird mein Text beim Kodieren an euren Server gesendet?
Nein. Jedes Zeichen wird vollständig in deinem Browser mit JavaScript kodiert — öffne die DevTools → Netzwerk und du siehst null Anfragen, wenn du tippst oder einfügst. Nichts wird hochgeladen, nichts protokolliert, nichts auf die Festplatte geschrieben. Diese Privatsphäre zählt, weil das Markup, das Menschen escapen, oft sensibel ist: ein Snippet aus einem privaten CMS, eine interne E-Mail-Vorlage, eine Antwort aus dem Kundensupport oder ein unveröffentlichter Blogentwurf. Bei einem serverseitigen Encoder würde jedes davon über das Netzwerk zu einer Maschine reisen, die du nicht kontrollierst; hier verlässt der Text niemals den Tab. Genau das ist der Grund, HTML clientseitig zu escapen, statt es auf eine Website einzufügen, die im Prinzip eine Kopie von allem behalten könnte, was sie verarbeitet.
Was bedeutet es, HTML zu escapen, und warum würde ich das tun?
HTML zu escapen bedeutet, Zeichen, die der Browser sonst als Markup interpretieren würde, durch ihre Entity-Entsprechungen zu ersetzen, sodass sie als reiner Text angezeigt werden. Der klassische Fall ist, Code auf einer Seite zu zeigen: Wenn ein Besucher die Zeichenkette <strong>bold</strong> lesen soll, statt das Wort „bold“ in Fettschrift gerendert zu sehen, escapst du die spitzen Klammern zu <strong>bold</strong>. Der andere, wichtigere Fall ist Sicherheit: Wenn du nicht vertrauenswürdige Benutzereingaben in eine Seite einfügst, verhindert das Escapen der fünf reservierten Zeichen (< > & " '), dass diese Eingabe aus ihrem Kontext ausbricht und ein <script>-Tag einschleust — die zentrale Verteidigung gegen Cross-Site-Scripting (XSS). Jeder Text, der von einem Benutzer stammt und in deinem HTML landet, sollte zuerst escaped werden.
Was ist der Unterschied zwischen benannten, dezimalen und Hex-Entities?
Alle drei erzeugen dasselbe Zeichen; sie unterscheiden sich nur darin, wie die Referenz geschrieben wird. Eine benannte Entity verwendet ein menschenlesbares Label — < für <, & für &, © für © —, das leicht zu lesen ist, aber nur für Zeichen funktioniert, die einen definierten Namen haben. Eine dezimale numerische Entity schreibt den Unicode-Codepunkt zur Basis 10, wie < für < oder é für é. Eine hexadezimale Entity schreibt denselben Codepunkt zur Basis 16, wie < für < oder é für é, und spiegelt die U+XXXX-Notation im Unicode-Standard wider. Benannte Entities sind am lesbarsten und der richtige Standard für die gängigen reservierten Zeichen; numerische Entities (dezimal oder hex) können jeden Codepunkt kodieren, auch namenlose, was sie zur sicheren Wahl macht, wenn du nicht garantieren kannst, dass der Empfänger eine bestimmte benannte Entity unterstützt.
Warum wird der Apostroph als ' und nicht als ' kodiert?
Weil &apos; nicht überall sicher ist. Die benannte Entity &apos; wurde erst mit HTML5 und XML eingeführt — sie ist in HTML4 nicht definiert, sodass einige ältere Parser und E-Mail-Clients sie als den wörtlichen Text „&apos;“ statt als Apostroph rendern. Die numerische Referenz ' (oder ihr dezimaler Zwilling ') bildet sich auf genau dasselbe Zeichen ab, U+0027, und wird von jedem konformen Parser verstanden, der je geschrieben wurde. In Anlehnung an das Verhalten gut getesteter Bibliotheken wie he gibt dieses Tool für den Apostroph das universell kompatible ' aus, sodass die Ausgabe sich ohne Überraschungen in jeden HTML-, XML- oder Attributkontext einfügen lässt.
Muss ich Nicht-ASCII-Zeichen wie é, — oder 😀 kodieren?
Normalerweise nein. Wenn deine Seite <meta charset="utf-8"> deklariert — was im Grunde jede moderne Seite tut —, dann sind akzentuierte Buchstaben, Gedankenstriche und Emoji als rohes UTF-8 völlig gültig und brauchen überhaupt keine Kodierung. Deshalb lässt der Standardmodus „Sonderzeichen“ sie unangetastet und hält deine Ausgabe kurz und lesbar. Du musst Nicht-ASCII-Zeichen nur kodieren, wenn der Text in einem Legacy-Single-Byte-Zeichensatz ausgeliefert oder gespeichert wird oder durch ein System läuft, das rohes UTF-8 beschädigt. Für diese Fälle aktiviere „Alle Nicht-ASCII-Zeichen kodieren“ und jeder Codepunkt oberhalb von 0x7F wird in eine ASCII-sichere Entity umgewandelt. Im Zweifel behalte den Standard bei und stelle sicher, dass deine Zeichensatz-Deklaration korrekt ist.
Schützt mich das Escapen von HTML vor XSS-Angriffen?
Escapen ist das Fundament der XSS-Abwehr, aber es ist kontextabhängig, daher lautet die ehrliche Antwort „ja, korrekt angewendet“. Das Kodieren der fünf reservierten Zeichen, bevor du nicht vertrauenswürdige Eingaben in HTML-Elementinhalt platzierst, hindert einen Angreifer zuverlässig daran, Tags oder Skripte einzuschleusen — eine Payload wie <script>alert(1)</script> wird zu inertem Text. Der Vorbehalt: HTML hat mehrere Kontexte mit je eigenen Escaping-Regeln: innerhalb eines Attributwerts musst du Anführungszeichen escapen (was dieses Tool tut), innerhalb eines <script>-Blocks oder eines Inline-Event-Handlers brauchst du stattdessen JavaScript-Escaping, und innerhalb einer URL brauchst du URL-Kodierung. Verwende HTML-Entity-Kodierung für HTML- und Attributkontexte; für URLs greif zum URL-Encoder / -Decoder, und um eine Zeichenkette in JavaScript oder JSON einzubetten, siehe das Tool JSON Escape. Escape zum Ausgabezeitpunkt, in dem Kontext, in dem die Daten landen.
Wie kehre ich das um — Entities zurück in Zeichen verwandeln?
Verwende den begleitenden HTML-Entity-Decoder. Er nimmt eine Zeichenkette voller Entities wie <div> & © und wandelt sie zurück in die echten Zeichen <div> & ©, wobei er benannte Entities, dezimale Referenzen, hexadezimale Referenzen und sogar veraltete unvollständige Entities wie &copy ohne abschließendes Semikolon verarbeitet. Kodieren und Dekodieren sind für die reservierten Zeichen exakte Umkehrungen, sodass du Text verlustfrei durch beide Tools hin- und herführen kannst. Wenn du untersuchst, warum eine Seite das wörtliche &lt; statt < zeigt, ist der Decoder der schnellste Weg zu sehen, wozu die Entities tatsächlich auflösen.
Verändert das Kodieren den sichtbaren Text oder zerstört es mein Layout?
Nein — das ist der ganze Sinn. Eine Entity ist nur eine alternative Schreibweise eines Zeichens: Wenn ein Browser < parst, rendert er ein einzelnes <-Glyph, identisch zum rohen Zeichen. Eine korrekt escapte Seite sieht für einen Besucher also genauso aus wie mit rohen Zeichen; der einzige Unterschied ist, dass der Browser die escapte Fassung als Text statt als Markup behandelt. Das Einzige, was Escapen ändert, sind Länge und Aussehen der Quellzeichenkette, weshalb du nur escapst, was escaped werden muss. Wenn dein Ziel ist, unordentliches Markup aufzuräumen und einzurücken, statt es zu escapen, ist das eine andere Aufgabe — verwende dafür den HTML-Formatierer.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →