Werkzeuge
Leitfäden

HTML-Entity-Encodierung / -Decodierung

Kodierung

HTML-Entities encodieren und decodieren — benannte, dezimale und hexadezimale.

100 % clientseitig Ohne Backend
Eingabe
Ausgabe
Auf dieser Seite

Was ist HTML-Entity-Kodierung?#

HTML gibt einer Handvoll Zeichen besondere Bedeutung: < und > begrenzen Tags, & beginnt eine Entity oder eine Zeichenreferenz, und " und ' zitieren Attributwerte. Wann immer Sie eines dieser Zeichen als wörtlichen Text auf einer Seite ersche lassen wollen — Nutzern die Quelle eines Code-Snippets zeigen, eine Sucheingabe in ein Feld zurückechoen, den String Tom & Jerry anzeigen — müssen Sie es durch einen Platzhalter ersetzen, eine sogenannte Entity. Diese Ersetzung ist HTML-Entity-Kodierung.

Es gibt drei Arten, dasselbe Escape zu schreiben, und dieses Werkzeug bietet alle drei über die Auswahl Optionen:

  • Benannt& wird zu &amp;, < wird zu &lt; und so weiter. Menschenlesbar und die einzige Form, die Leute normalerweise von Hand tippen. In diesem Modus werden nur die fünf strukturell gefährlichen Zeichen escaped; alles andere passiert unverändert.
  • Dezimal — jedes Nicht-ASCII- oder Steuerzeichen wird zu &#N;, wobei N sein Unicode-Codepunkt in Dezimal ist (zum Beispiel wird © zu &#169;). Gut, wenn Sie jedes nicht-standardmäßige Byte sichtbar und ASCII-sicher haben wollen.
  • Hexadezimal — dieselbe Idee mit hexadezimalen Codepunkten: © wird zu &#xa9;. Kompakt und passt natürlich zur Codepunkt-Notation, die Sie in Unicode-Tabellen sehen.

Dekodieren erkennt die benannten Entities in einem kuratierten HTML5-Teilset plus &#NN; (Dezimal) und &#xHH; (Hex). Eine nicht erkannte benannte Entity wird exakt so belassen, wie sie ist, statt geraten zu werden — sicherer, als stillschweigend das falsche Zeichen auszugeben.

Verwendung#

  1. Wählen Sie Kodieren oder Dekodieren am Umschalter oben links.
  2. Wählen Sie unter Optionen Benannt, Dezimal oder Hexadezimal.
  3. Fügen Sie in die Eingabe-Fläche links ein.
  4. Lesen Sie das escapete (oder unescapete) Ergebnis aus der Ausgabe-Fläche rechts und klicken Sie auf Kopieren.
  5. Beispiel lädt einen Demonstrationsstring; Leeren setzt die Flächen zurück.

Eckpunkte#

  • Drei Escape-Stile aus einer Auswahl. Wechseln zwischen benannt, dezimal und hex ohne neu Einfügen, was den Vergleich der Ausgabe trivial macht.
  • Astral-Zeichen-korrekt. Die Iteration erfolgt nach Unicode-Codepunkt, nicht nach UTF-16-Code-Einheit, sodass ein Emoji wie 🌍 als ein Zeichen behandelt wird (&#x1f30d;), nicht als ein kaputtes Paar Surrogate.
  • Kurativer, sicherer Dekodierer. Die Named-Entity-Map deckt die gängigen HTML5-Referenzen (Copyright, Trademark, akzentuierte Buchstaben, mathematische Symbole, Anführungszeichen und Striche). Unbekannte Namen passieren unverändert, statt verfälscht zu werden.
  • Kein DOM beteiligt. Kodieren und Dekodieren sind reine String-Operationen — keine versteckte <div>-Injektion — sodass die Logik vollständig testbar ist und kein Risiko besteht, dass das Werkzeug selbst Ihre Eingabe als Markup interpretiert.

Konkretes Beispiel#

Nehmen Sie ein Fragment, das Markup mit einem literalen Symbol mischt:

<a href="x">Tom & Jerry</a> © 2026

Im Modus Benannt werden nur die fünf gefährlichen Zeichen escaped und das © bleibt unangetastet (es ist nicht strukturell gefährlich):

&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&lt;/a&gt; © 2026

Schalten Sie auf Dezimal um und das © wird ebenfalls zu seinem Codepunkt, während die Kernzeichen in die numerische Form wechseln:

&#60;a href=&#34;x&#34;&#62;Tom &#38; Jerry&#60;/a&#62; &#169; 2026

Im Modus Hexadezimal erscheinen dieselben Zeichen als hexadezimale Codepunkte:

&#x3c;a href=&#x22;x&#x22;&#x3e;Tom &#x26; Jerry&#x3c;/a&#x3e; &#xa9; 2026

Dekodieren kehrt all das um: Fügen Sie einen der drei Ausgaben mit ausgewähltem Dekodieren wieder ein und Sie erhalten das ursprüngliche Fragment, einschließlich des ©.

FAQ#

Welchen Modus soll ich verwenden, um einen String sicher in HTML einzubinden?#

Benannt ist fast immer der richtige Standard für die fünf gefährlichen Zeichen — es ist lesbar, von jedem Browser gut verstanden und hält die Ausgabe diff-freundlich. Greifen Sie zu Dezimal oder Hexadezimal, wenn Sie ausdrücklich jedes Nicht-ASCII-Zeichen ASCII-sicher machen müssen (zum Beispiel Inhalt für einen Transport vorbereiten, der hohe Bytes ablehnt), nicht für gewöhnliches Escapen.

Ich habe &copy; dekodiert, aber ein seltsamer Name wie &mytag; kam unverändert zurück. Warum?#

Der Dekodierer löst nur Entities auf, die er tatsächlich kennt — ein kuratiertes HTML5-Teilset der gängigen Namen. &mytag; ist keine echte HTML-Entity, deshalb lässt das Werkzeug es unangetastet, statt zu raten oder es fallenzulassen. Wenn Sie wirklich jede DTD-definierte Entity aufgelöst brauchen, sind Sie außerhalb des Bereichs eines String-Konverters und beim echten HTML-Parsen.

Reicht HTML-Escapen aus, um Benutzereingaben in einem JavaScript-String oder einer URL sicher zu machen?#

Nein. Jeder Kontext hat seine eigenen Regeln. HTML-Escapen schützt vor Markup-Injection, aber ein String wie '); alert(1); // ist in HTML harmlos und gefährlich innerhalb eines <script>. Dieselbe Eingabe braucht auch URL-Kodierung, bevor sie in einen Link geht. Escapen Sie für den Ziel-Kontext, nicht nur einmal.

Warum verwendet die Hex-Ausgabe Kleinbuchstaben (&#xa9; nicht &#xA9;)?#

Kleinbuchstaben-Hex ist die konventionellere, ordentlichere Form und wird von jedem Browser identisch geparst. Wenn Sie für einen Stil-Leitfaden Großbuchstaben brauchen, umgeht der Dezimalmodus (&#169;) die Frage vollständig, oder schicken Sie die Ausgabe durch eine eigene Groß-/Kleinschreibungstransformation.