HTML-Entities kodieren / dekodieren
Text für HTML escapen oder &-Entities zurück in Zeichen wandeln
Über dieses Tool
Escape Text für die sichere Einbettung in HTML — aus & wird &amp;, aus < wird &lt; — oder dekodiere entity-gespickten Text zurück in lesbare Zeichen, inklusive benannter Entities (&rarr;), dezimaler (&#169;) und hexadezimaler (&#xA9;) numerischer Referenzen.
Beim Kodieren gibt es zwei Stufen: die fünf essenziellen Zeichen, die die HTML-Struktur brechen (& < > " ') — mehr braucht es für Korrektheit nicht — oder alles Nicht-ASCII, nützlich, wenn irgendwo zwischen dir und der Seite eine Toolchain UTF-8 verstümmelt. Ein Nur-numerisch-Modus lässt benannte Entities weg, für maximale Kompatibilität mit strikten XML-Parsern, die nur die fünf vordefinierten garantieren.
Der Decoder ist die Alltagsseite: Füge ein gescraptes Snippet oder eine API-Antwort voller &#x27; ein und erhalte sauberen Text. Unbekannte Entity-Namen werden unverändert durchgereicht statt geraten.
Häufige Fragen
- Welche Zeichen müssen in HTML escaped werden?
- In Textinhalten: & und <. In Attributwerten: zusätzlich das Anführungszeichen, das das Attribut begrenzt (" oder '). > zu escapen ist üblich, aber nicht zwingend nötig. Alles andere darf in einem UTF-8-Dokument wörtlich stehen.
- Ist Entity-Kodierung ein Schutz gegen XSS?
- Das Escapen der fünf Strukturzeichen ist der Kern des Output-Encodings im HTML-Kontext, ja — aber nur für HTML-Text- und Attribut-Kontexte. URLs, JavaScript-Strings und CSS brauchen ihre eigenen kontextspezifischen Kodierungen; Entity-Escaping allein macht beliebige Injection dort nicht sicher.
- Benannte oder numerische Entities — welche sollte ich ausgeben?
- Numerische Referenzen (&#xE9;) funktionieren in jedem HTML- und XML-Parser. Benannte Entities sind lesbarer, aber XML definiert nur fünf vor — &eacute; bricht also eine strikte XML/XHTML-Pipeline. Im Zweifel: numerisch.
- Warum sehe ich &amp;#39; (doppelt kodiert) in meinen Daten?
- Zwei Schichten haben je einmal kodiert: Das & der ersten Kodierung wurde von einem zweiten Durchlauf selbst escaped. Dekodiere hier zweimal, um den Text wiederherzustellen, und finde und repariere dann die Schicht, die nicht kodieren sollte.