Pack Camo

HTML-Entity Encoder & Decoder

Text für HTML maskieren und &entities; zurück in Zeichen verwandeln. Alles läuft lokal — nichts wird hochgeladen.

Eingang
Text · HTML
Ausgang
Escaped HTML · decoded text

Text

66 Zeichen

HTML

102 Zeichen

<p class="note">Fish & chips — £4.50, café crème "très bon" 😀</p>

Text für HTML maskieren oder Entities zurück in Text verwandeln

Dieser HTML-Entity Encoder maskiert die Zeichen, die sonst als Markup gelesen würden, und der Decoder verwandelt Entities wie &, é und € zurück in die Zeichen, für die sie stehen. Wählen Sie benannte, dezimale oder hexadezimale Referenzen, maskieren Sie nur das Nötige oder jedes Nicht-ASCII-Zeichen, und schlagen Sie gängige Entities in der Referenztabelle nach. Alles läuft in Ihrem Browser; nichts, was Sie einfügen, wird hochgeladen.

So kodieren oder dekodieren Sie HTML-Entities

  1. Wählen Sie Kodieren, um Text für HTML zu maskieren, oder Dekodieren, um Entities zurück in Zeichen zu verwandeln.
  2. Wählen Sie beim Kodieren, was maskiert wird: nur die Sonderzeichen (& < > " ') oder zusätzlich jedes Nicht-ASCII-Zeichen.
  3. Wählen Sie die Form: benannt (&eacute;), dezimal (&#233;) oder hexadezimal (&#xE9;).
  4. Kopieren Sie das Ergebnis oder übernehmen Sie es als Eingabe, um den Hin- und Rückweg zu prüfen. Schalten Sie die Referenztabelle ein, um ein einzelnes Entity zu kopieren.

Warum HTML maskiert werden muss

In HTML beginnt < ein Tag und & eine Zeichenreferenz, und innerhalb eines Attributs beendet das Anführungszeichen den Wert. Um diese Zeichen als Text anzuzeigen, müssen sie als Entities geschrieben werden: &lt;, &amp;, &quot; und &#39;. Wird das vergessen, macht ein verirrtes „<b“ in einem Kommentar den Rest der Seite fett – und wenn der Text von Nutzern stammt, entsteht so Cross-Site-Scripting (XSS).

Maskieren ist die letzte Verteidigungslinie, nicht die einzige. Template-Engines wie React, Vue, Jinja und Blade maskieren die Ausgabe für Sie; dieses Tool ist für die Stellen, die sie nicht erreichen – statisches HTML, E-Mail-Vorlagen, Dokumentation, CMS-Felder und die Fehlersuche in dem, was ein System tatsächlich gespeichert hat.

Benannte, dezimale und hexadezimale Referenzen

Der Apostroph wird als &#39; geschrieben statt als &apos;: &apos; ist in HTML5 und XML gültig, gehörte aber nie zu HTML 4, und manche älteren Parser kennen es nicht.

Benannt (&eacute;)
Lesbar und die Form, die die meisten kennen. HTML5 definiert etwa 2.200 Namen, aber nicht jedes Zeichen hat einen; Zeichen ohne Namen werden dezimal geschrieben.
Dezimal (&#233;)
Der Unicode-Codepoint zur Basis 10. Funktioniert für jedes Zeichen und in jedem HTML- und XML-Parser.
Hexadezimal (&#xE9;)
Derselbe Codepoint zur Basis 16, passend zur Schreibweise in Unicode-Tabellen (U+00E9).

Muss ich Umlaute, Akzente und Emojis maskieren?

Nicht auf einer Seite, die als UTF-8 ausgeliefert wird, und das ist heute fast jede Seite. Nur die fünf Sonderzeichen müssen maskiert werden; „Größe“, „café“, „日本語“ und Emojis können so geschrieben werden, wie sie sind. Genau das macht die Option nur Sonderzeichen, und das HTML bleibt lesbar.

Jedes Nicht-ASCII-Zeichen zu maskieren ist trotzdem nützlich, wenn die Ausgabe durch etwas läuft, das nicht UTF-8-sicher ist: ein Altsystem in ISO-8859-1 oder Windows-1252, manche E-Mail-Strecken oder eine Quelldatei, deren Kodierung Sie nicht kontrollieren. Das Ergebnis ist reines ASCII und übersteht jedes davon.

Wie das Dekodieren funktioniert

Der Decoder liest benannte Referenzen sowie dezimale (&#169;) und hexadezimale (&#xA9;) und folgt dabei den Regeln der Browser: Numerische Referenzen im Bereich 128–159 werden als Windows-1252 gelesen, wie es der HTML-Standard vorschreibt, sodass &#150; zum Halbgeviertstrich wird; ungültige Codepoints werden zum Ersatzzeichen; und die wenigen Altnamen, die Browser ohne Semikolon akzeptieren, etwa &copy, werden ebenfalls dekodiert. Unbekannte Namen, meist Tippfehler wie &nbps;, bleiben stehen und werden aufgelistet, damit Sie sie korrigieren können.

Stammt der Text aus einer URL statt aus HTML, nutzen Sie stattdessen den URL-Decoder: %3C ist Prozentkodierung, kein HTML-Entity.

Häufige Fragen

Was sind HTML-Entities?
HTML-Entities sind Codes, die für Zeichen stehen und zwischen & und ; geschrieben werden. Mit ihnen lassen sich Zeichen anzeigen, die HTML sonst als Markup behandeln würde, etwa < und &, oder Zeichen, die schwer zu tippen sind, etwa © oder ein geschütztes Leerzeichen.
Welche Zeichen müssen in HTML maskiert werden?
Fünf: & als &amp;, < als &lt;, > als &gt;, das doppelte Anführungszeichen als &quot; und das einfache als &#39;. Die Anführungszeichen spielen nur in Attributwerten eine Rolle, sie überall zu maskieren schadet aber nicht.
Wie dekodiere ich HTML-Entities?
Wählen Sie Dekodieren und fügen Sie den Text ein. Benannte, dezimale und hexadezimale Entities werden beim Tippen in Zeichen umgewandelt, und unbekannte Entity-Namen werden aufgelistet.
Was ist der Unterschied zwischen &nbsp; und einem normalen Leerzeichen?
&nbsp; ist ein geschütztes Leerzeichen: Es sieht aus wie ein Leerzeichen, verhindert aber an dieser Stelle einen Zeilenumbruch, und Browser fassen mehrere davon nicht zu einem zusammen. Nützlich zwischen einer Zahl und ihrer Einheit, etwa 10&nbsp;kg.
Sollte ich &apos; oder &#39; für einen Apostroph verwenden?
&#39; funktioniert überall. &apos; ist in HTML5 und XML gültig, aber nicht in HTML 4, daher ist &#39; für E-Mails und ältere Systeme die sicherere Wahl.
Verhindert das Maskieren von HTML XSS?
Text vor dem Einfügen in HTML zu maskieren ist die zentrale Abwehr gegen Cross-Site-Scripting, muss aber zum Kontext passen: HTML-Text, Attribute, URLs und JavaScript brauchen jeweils ihre eigene Kodierung. Bevorzugen Sie ein Template-System, das automatisch maskiert.
Wird mein Text an einen Server gesendet?
Nein. Kodieren und Dekodieren passieren vollständig in Ihrem Browser.