HTML Encoder

HTML Encoder / Decoder

Escape `& < > " '` zu sicheren HTML-Entities oder dekodiere entity-escapten Text zurück in Klartext. Vier Encoding-Stufen — Minimal, Benannt, Numerisch, Alle Nicht-ASCII. UTF-8 + Emoji + CJK sicher, in deinem Browser.

Standardmäßig Minimal — escape nur & < > " ', die fünf Zeichen, die HTML-Body-/Attribut-Kontexte zerbrechen lassen. Genau das tut auch jede moderne Templating-Engine. Verwende Benannte Entities, wenn du Copyright / nbsp / Pfeile etc. als lesbare Codes haben möchtest (&copy; statt &#169;). Verwende Numerisch, wenn du HTML durch Pipelines schickst, die eventuell keine benannten Entities verstehen. Verwende Alle Nicht-ASCII, wenn du strikte ASCII-only-Systeme bedienst (alte Mailserver, kaputte APIs).

&apos; ist in XML und HTML5 gültig, aber nicht in HTML 4.01 — ältere Browser zeigen es als wörtlichen Text ' an. Die numerische Referenz &#39; funktioniert überall. Der Decoder akzeptiert &apos; aus Kompatibilitätsgründen als Eingabe.

Eingabe
Ausgabe

Gebaut für sichere HTML-Ausgabe

Escape Nutzerinhalte für Templates, dekodiere entity-kodierte Daten — und ein paar kleine Details, die das Tool wirklich angenehm machen.

Vier Encoding-Modi

Minimal escapet nur die fünf HTML-unsicheren Zeichen (& < > " ') — der richtige Standard für normale nutzergenerierte Inhalte. Benannt verwendet lesbare HTML5-Entities wie &copy; / &nbsp; / &hearts;, sofern vorhanden. Numerisch kodiert jeden Nicht-ASCII-Codepunkt als &#NN;. Alle Nicht-ASCII kodiert jeden Codepunkt außerhalb des druckbaren ASCII-Bereichs für Legacy- / ASCII-only-Pipelines.

Beliebige Entities dekodieren

Der Decoder verarbeitet benannte Entities (&copy;), dezimal-numerische (&#169;) und hexadezimal-numerische (&#xA9;). Codepunkte mit Surrogatpaaren (Emoji, alte Schriften) durchlaufen über UTF-16 korrekt einen Round-Trip.

Live-Vorschau

Die Ausgabe aktualisiert sich bei jedem Tastendruck — kein Encode-/Decode-Button nötig. Wechsle die Richtung mit einem Klick; die Schaltfläche Tauschen verschiebt die Ausgabe zurück in die Eingabe, sodass du Transformationen verketten kannst.

UTF-8 + Emoji + CJK sicher

Jeder Unicode-Codepunkt durchläuft einen sauberen Round-Trip: 中文, العربية, русский, हिंदी, 🎉, Þorgeir. Der Encoder iteriert pro Codepunkt (nicht charAt), sodass Surrogatpaare unversehrt bleiben.

Datenschutz by Design

Dein Text bleibt auf deinem Gerät. Encoder, Decoder und die Tabelle der benannten Entities laufen alle als JavaScript lokal. Öffne die DevTools → Network und überprüfe die null ausgehenden Requests.

Klein + schnell

Reines JavaScript, keine Framework-Runtime. Der Cold Load liegt unter 25 KB gzipped. Ein 100 KB großes HTML-Dokument wird in unter 5 ms kodiert.

So kodierst oder dekodierst du HTML-Entities

Vier Schritte vom Rohtext zur entity-sicheren Ausgabe.

  1. 1

    Text einfügen

    Klartext oder HTML in das Eingabe-Feld einfügen. Alles ist erlaubt — Nutzerkommentare, Blogposts, Emoji, CJK, RTL-Schriften. Der Encoder iteriert pro Codepunkt, sodass Multi-Byte-Sequenzen unversehrt bleiben.

  2. 2

    Richtung + Modus wählen

    Setze Richtung auf Kodieren (Text → Entities) oder Dekodieren (Entities → Text). Wähle für Kodieren den Modus: Minimal für Templates, Benannt für lesbare Entities, Numerisch für Nicht-ASCII als &#NN;, Alle Nicht-ASCII für ASCII-only-Ausgabe.

  3. 3

    Live-Vorschau verfolgen

    Die Ausgabe aktualisiert sich bei jedem Tastendruck. Vergleiche Modi in Echtzeit, indem du das Dropdown wechselst. Verwende Tauschen, um die Ausgabe zurück in die Eingabe zu schieben — nützlich für Round-Trip-Verifizierung (kodieren, dann dekodieren = Original).

  4. 4

    Kopieren oder herunterladen

    Mit dem Kopier-Symbol das Ergebnis in die Zwischenablage übernehmen oder mit dem Download-Symbol als output.encode.html / output.decode.txt speichern. Die Größendifferenz (Zeichen / Bytes ein → aus) zeigt genau, wie sehr das Encoding den Text aufgebläht oder verkleinert hat.

Gebaut für die tägliche Web-Dev-Arbeit

Vier typische Szenarien, in denen ein datenschutzfreundliches Browser-Tool besser ist als Code in einen beliebigen Online-Encoder einzufügen.

Nutzerinhalte sicher in ein Template einbetten

Nutzerkommentare, Formularantworten, Suchanfragen — alles, was von außen kommt und in einem <p>, <li> oder Attribut landet. Lass es vor dem String-Concat in dein HTML durch das Minimal-Encoding laufen, und du bist vor kaputtem Markup und den simpelsten XSS-Payloads sicher.

Entity-escapte Daten aus einer API lesen

Manche APIs liefern bereits entity-escapte Strings (RSS-Feeds, bestimmte CMS-Exporte, gescraptes HTML). Einfügen, auf Dekodieren klicken, das ursprüngliche Unicode zurückerhalten. Der Decoder verarbeitet benannte, dezimale und hexadezimale Entities einschließlich Surrogatpaaren.

E-Mail-Betreffzeilen + Meta-Tags

<title>, <meta name="description">, <meta property="og:title"> — alle benötigen Entity-Escaping für Sonderzeichen. Kodiere deine Headline einmal und füge sie in alle drei ein.

Sensible Inhalte, die nicht zu einem Drittanbieter-Service dürfen

Interne CMS-Inhalte, Kundendaten, NDA-geschützte Templates — alles, was du nicht in einen Cloud-Encoder einfügen kannst. Das reine Browser-Tool hält jedes Byte auf deinem Laptop. Öffne die DevTools → Network und überprüfe, dass nichts hinausgeht.

100 % privat — läuft in deinem Browser

Dein Text verlässt nie dein Gerät. Öffne die DevTools → Network und du siehst während des Kodierens oder Dekodierens null ausgehende Requests.

  • Encoder, Decoder und die Lookup-Tabelle für benannte Entities laufen alle als JavaScript auf deiner Maschine — keine serverseitige Konvertierung, keine Drittanbieter-API.
  • Codepunkte mit Surrogatpaaren (Emoji, alte Schriften) werden durch Codepunkt-Iteration verarbeitet, nicht durch byteweises Mapping — sodass ein eingefügtes 🎉 nach einem Round-Trip 🎉 bleibt.
  • Kein Login, keine Telemetrie zu Textinhalten. Wir verwenden nur ein Cookie für den Cookie-Consent-Status und eines für die Sprachpräferenz.

Verwandte Anleitungen

Handverlesene Lektüre zu HTML-Escaping, Entity-Tabellen und sicherem Templating.

Häufig gefragt

Welchen Modus soll ich wählen?

Standardmäßig Minimal — escape nur & < > " ', die fünf Zeichen, die HTML-Body-/Attribut-Kontexte zerbrechen lassen. Genau das tut auch jede moderne Templating-Engine. Verwende Benannte Entities, wenn du Copyright / nbsp / Pfeile etc. als lesbare Codes haben möchtest (&copy; statt &#169;). Verwende Numerisch, wenn du HTML durch Pipelines schickst, die eventuell keine benannten Entities verstehen. Verwende Alle Nicht-ASCII, wenn du strikte ASCII-only-Systeme bedienst (alte Mailserver, kaputte APIs).

Warum wird `'` als `&#39;` statt als `&apos;` escapet?

&apos; ist in XML und HTML5 gültig, aber nicht in HTML 4.01 — ältere Browser zeigen es als wörtlichen Text ' an. Die numerische Referenz &#39; funktioniert überall. Der Decoder akzeptiert &apos; aus Kompatibilitätsgründen als Eingabe.

Überleben Emoji und CJK-Zeichen?

Ja. Der Encoder iteriert über Codepunkte (nicht über UTF-16-Code-Units), sodass Emoji wie 🎉 (U+1F389) beim Kodieren zu &#127881; werden und beim Dekodieren korrekt zurückkehren. Dasselbe gilt für CJK (中文 → &#20013;&#25991; im numerischen Modus).

Ist es sicher, Nutzereingaben nach dem Kodieren direkt in HTML einzubetten?

Für HTML-Body und -Attribute — ja, mit dem Modus Minimal. Für URL-Kontexte (href="...") brauchst du zusätzlich URL-Encoding. Für inline JavaScript oder CSS reicht weder HTML- noch URL-Encoding aus — verwende eine ordentliche Templating-Engine, die diese Kontexte versteht. Füge nie unescapte Nutzereingaben in einen <script>-Block ein.

Wird irgendetwas an euren Server gesendet?

Nein. Encoder, Decoder und die Lookup-Tabelle für benannte Entities laufen alle in JavaScript auf deinem Gerät. Öffne die DevTools → Network und du siehst während des Kodierens oder Dekodierens null ausgehende Requests. Füge Geheimnisse, Kundendaten oder interne Templates ein — nichts verlässt deinen Laptop.