Zum Inhalt springen

HTML-Entities kodieren

HTML Entity Encoder

Maskiert und demaskiert HTML-Entities, mit benannter, dezimaler und hexadezimaler Ausgabe.

Wandelt Zeichen in HTML-Entities um und zurück – `&`, `&`, `&` – mit einer Wahl, wie viel maskiert wird. Beim Dekodieren wird auch die Windows-1252-Umsetzung angewendet, die die HTML-Parsing-Spezifikation verlangt, weshalb `’` als typografischer Apostroph zurückkommt und nicht als Steuerzeichen.

🔒 Läuft vollständig in Ihrem Browserhtmlentityescape
Regeln
Richtung
Maskieren

Nur `&`, `<` und `>`. Das ist alles, was Sie zwischen zwei Tags brauchen, und nicht mehr.

Als

Text

Kodiert

Die fünf, die XML definiert

Die fünf vordefinierten XML-Entities.
ZeichenBenanntDezimalHex
&&amp;&#38;&#x26;
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
"&quot;&#34;&#x22;
'&apos;&#39;&#x27;

Das sind die einzigen benannten Referenzen, die XML ohne DTD hat. Alles andere in einem XML-Dokument muss numerisch sein.

So funktioniert es

  1. Entscheiden Sie, wie viel maskiert werden soll

    Textinhalt maskiert nur `&`, `<` und `>` – alles, was Sie zwischen zwei Tags brauchen. Attributwert fügt die beiden Anführungszeichen hinzu. Alles Nicht-ASCII ist für eine Pipeline, die kein UTF-8 transportieren kann, und macht aus jedem „ä“ sechs Zeichen wie `&#228;`.

  2. Wählen Sie die Schreibweise

    Benannt (`&amp;`) liest sich am besten; dezimal und hexadezimal sind numerisch und funktionieren in XML, das ohne DTD nur fünf benannte Referenzen hat.

  3. Oder gehen Sie den anderen Weg

    Wechseln Sie zu Zurückwandeln und fügen Sie Text voller Entities ein. Alles, was die Tabelle nicht erkennt, wird aufgelistet und genau so belassen, wie es geschrieben steht, statt entfernt zu werden.

Häufige Fragen

Warum wurde eine meiner Entities so belassen, wie sie geschrieben stand?

HTML5 definiert 2231 benannte Referenzen, und die Tabelle hier trägt eine ausgewählte Teilmenge – jedes Latin-1-Zeichen, die Satzzeichen, Griechisch, die Pfeile und die gängigen mathematischen Symbole. Alles außerhalb davon wird in einem Hinweis namentlich aufgeführt, statt stillschweigend entfernt zu werden – das ist der ehrliche Fehlschlag.

Schützt das Maskieren von Entities vor XSS?

Es ist das richtige Maskieren für Textinhalt und für einen Attributwert in Anführungszeichen, und es reicht überall sonst nicht aus – in einem `<script>`-Block, in einer `javascript:`-URL, in einem Attribut ohne Anführungszeichen oder in einem CSS-Kontext bewirkt Entity-Maskierung nichts Nützliches. Maskieren muss zu dem Kontext passen, in dem es landet.

Warum wird `&#146;` zu einem Apostroph dekodiert?

Weil die HTML-Parsing-Spezifikation sagt, dass die Codepunkte 0x80–0x9F in einer numerischen Referenz auf die Windows-1252-Zeichen an diesen Positionen umzusetzen sind. Sie wörtlich zu dekodieren ergäbe unsichtbare C1-Steuerzeichen, was ein naiver Decoder aus Text erzeugt, der aus Word eingefügt wurde.

Kann ich `&nbsp;` in XML verwenden?

Nicht ohne eine DTD, die es deklariert. XML hat genau fünf vordefinierte benannte Referenzen – `&amp;` `&lt;` `&gt;` `&quot;` `&apos;` –, und die Tabelle unten auf der Seite führt sie auf. Alles andere muss numerisch sein.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.