HTML kodieren und dekodieren
Dieses Werkzeug wandelt Text in HTML-Zeichenreferenzen um und dekodiert diese zurück, vollständig in Ihrem Browser. Benannte Entitäten wie & und < decken die alltäglichen Escapes ab; numerische Formen wie A und A ermöglichen den Zugriff auf jedes Unicode-Zeichen. Der strenge Dekodierungsmodus meldet unbekannte Entitäten anstatt sie durchzulassen.
HTML kodieren und dekodieren erklärt
HTML gibt zwei Zeichen strukturelle Aufgaben: & beginnt eine Zeichenreferenz, < beginnt ein Tag. Wenn diese Zeichen als Text erscheinen, müssen sie escapet werden, und der Mechanismus ist die Zeichenreferenz: eine kurze, eindeutige Schreibweise wie &, die jeder Parser wieder in das ursprüngliche Zeichen zurückwandelt.
Die Liste der benannten Referenzen des Standards ist endlich und abgeschlossen – über 2.200 Schreibweisen – und fünf tragen die meiste Arbeit: & < > " und '. Für alles, was die Liste nicht abdeckt, schreibt eine numerische Referenz direkt den Codepunkt: A und A sind beide der Buchstabe A, und derselbe Trick funktioniert für jedes Zeichen, das Unicode hat.
Das Panel unten beherrscht beide Richtungen: ein Umschalter kodiert Text in Entitäten, der andere dekodiert sie zurück. Schalter wählen benannte oder numerische Ausgabe sowie strengen oder nachsichtigen Dekodierungsmodus. Wie alles auf dieser Seite läuft es vollständig in diesem Browser-Tab.
Das Erstellen von Links, die Benutzerdaten übertragen, ist der Punkt, an dem die beiden Escaping-Grammatiken aufeinandertreffen, und der URL-Encoder und -Decoder handhabt die Prozentcodierung.
Entity-Escaping ist ein Mitglied einer Familie von Zeichen- und Byte-Kodierungen; die Hub für Kodierungswerkzeuge Seite sammelt die übrigen, von Base64 bis Binary.
Die fünf benannten Entitäten, die fast die ganze Arbeit leisten
Welche Zeichen escapet werden müssen, hängt vom Kontext ab. Im Text sind zwei zwingend erforderlich: ein wörtliches & muss als & geschrieben werden, weil ein kaufmännisches Und-Zeichen gefolgt von Buchstaben und einem Semikolon der Beginn von Referenzen ist, und ein wörtliches < muss als < geschrieben werden, da es sonst ein Tag öffnet. Die anderen drei sind kontextabhängig; das unbedingte Escapen aller fünf kostet nichts.
| Entität | Schreibt | Erforderlich bei |
|---|---|---|
| & | & | Immer im Text – das vom Standard geforderte Escape |
| < | < | Im Text, bevor es ein Tag öffnet |
| > | > | Selten im Text erforderlich; aus Gewohnheit escapet |
| " | " | Innerhalb von Attributwerten in doppelten Anführungszeichen |
| ' | ' | Innerhalb von Attributwerten in einfachen Anführungszeichen |
Benannt versus numerisch: zwei Schreibweisen für ein Zeichen
Eine numerische Referenz schreibt den Codepunkt direkt: A ist dezimal für A, A hexadezimal für denselben Buchstaben – Semikolon in HTML5 erforderlich, x und Hexadezimalziffern case-insensitiv. Da die Zahl den Codepunkt direkt benennt, deckt die numerische Form jedes Zeichen ab, das Unicode definiert, einschließlich Emoji.
Der Kompromiss ist die Lesbarkeit des Quelltextes: é sagt einem Menschen, was gerendert wird, é nicht. Der benannte Modus folgt der üblichen Richtlinie: häufige Zeichen erhalten Namen ( , —, é als é), das lange Ende erhält Zahlen. Downstream verschwindet der Unterschied – beide Schreibweisen dekodieren zum selben Zeichen.
Dekodierungsmodus und was der strenge Modus meldet
Der Richtungs-Umschalter kehrt die Pipeline um: eingefügtes escapetes Markup ergibt Klartext. Alle drei Schreibweisen werden dekodiert – benannt, dezimal und hexadezimal – und die benannte Suche ignoriert die Groß-/Kleinschreibung, weil reale Markups nicht konsistent sind.
Unbekannte Entitäten werden ehrlich behandelt. Der Konverter erkennt &npsp; – den klassischen Tippfehler von – und lässt es standardmäßig unverändert, da Text legitimerweise kaufmännische Und-Zeichen enthalten kann. Der strenge Modus existiert für Markup, das als vollständig escapet gilt: dort ist eine unbekannte Entität ein Fehler, und der strenge Dekodierung meldet jede über der Ausgabe anstatt einen Tippfehler durchgehen zu lassen.
Escaping ist die Sicherheitsgrenze, keine Dekoration
Der Grund, warum diese Konversion über die Typografie hinaus wichtig ist, ist die Injection. Benutzerdefinierter Text, der in einer Seite unescapet landet, wird nicht als Text angezeigt: ein wörtliches <script> darin wird ausgeführt, und ein unescapetes Anführungszeichen in einem Attributwert bricht aus dem Attribut aus. Escaping verwandelt diese Bytes in inerte Zeichen – <script> wird als lesbarer Text gerendert und tut nichts weiteres.
Es ist eine andere Aufgabe als das URL-Escaping: die Prozentkodierung hat ihre eigene reservierte Menge und Grammatik, und die beiden sind nicht austauschbar – weshalb sie separate Werkzeuge erhalten.
Häufig gestellte Fragen
Sendet der Encoder meinen Text an einen Server?
Nein. Beide Richtungen sind String-Transformationen, die von JavaScript ausgeführt werden, das mit der Seite geladen wurde; nichts wird übertragen. Die Content-Security-Policy der Seite setzt connect-src 'self', sodass der Browser selbst eine ausgehende Anfrage ablehnen würde. Überprüfen Sie es auf beide Arten: das Network-Panel von DevTools bleibt stumm, und das Werkzeug funktioniert offline weiter.
Welche Zeichen müssen in HTML überhaupt escapet werden?
In Textinhalt sind zwei zwingend erforderlich: & als & und < als <. Ein bloßes > im Text wird toleriert, aber aus Gewohnheit escapet, und die Anführungszeichen gelten nur innerhalb von Attributwerten, die durch denselben Anführungszeichen begrenzt sind. Dieses Werkzeug escapet alle fünf unconditionally, sodass seine Ausgabe überall sicher ist.
Was ist der Unterschied zwischen benannten und numerischen Entitäten?
Eine benannte Entität ist ein Label aus der geschlossenen Liste des Standards – &, ©, é. Eine numerische Referenz schreibt den Codepunkt direkt, dezimal als A oder hexadezimal als A. Beide dekodieren zum identischen Zeichen; numerisch deckt jeden Unicode-Codepunkt ab, benannt ist lesbarer. Der Unterschied ist nur für menschliche Leser des Quelltextes relevant.
Fängt der strenge Dekodierungsmodus etwas ab?
Unbekannte Namen und unmögliche Zahlen. Der strenge Dekodierungsmodus meldet Entitäten wie &npsp; – den klassischen Tippfehler von – und numerische Referenzen, deren Wert kein gültiger Zeichencode ist. Der nachsichtige Modus lässt unbekannte Entitäten unverändert.
Beeinflussen Entitäten das SEO oder Screenreader?
Nein. Entitäten werden während der HTML-Parsierung dekodiert, bevor ein Suchindex oder ein Screenreader sie je sehen. Das DOM hält das wörtliche Zeichen in beiden Fällen, also é und é rangieren identisch und werden identisch vorgelesen. Wählen Sie eine Schreibweise für die menschlichen Leser des Quelltextes, nicht für Maschinen, die die Seite verarbeiten.
Warum wird mein Apostrophe zu '?
Weil HTML5 ' definiert – es war jahrelang nur in XML vorhanden, weshalb ältere Referenzen es als riskant bezeichnen – und ein Apostroph innerhalb eines einfach-attributierten Wertes genau der Ort ist, an dem sein Escaping erforderlich ist. Für pre-HTML5-Consumer ist die numerische Form ' die Form, die jeder Parser immer akzeptiert hat.
Welche verwandten Tools sollten Sie als Nächstes nutzen?
- URL kodieren und dekodierenKodieren und dekodieren, mit + und %20 sauber getrenntÖffnen
- Base64 dekodierenStandard- und URL-sicheres Base64 dekodieren und kodierenÖffnen
- Kodier-ToolsBase64, URL-Kodierung, Hashes und Token-Analyse.Öffnen
- Text-ToolsText und Code vergleichen, umwandeln und umformen.Öffnen
- Schreibweise umwandelnBezeichner umbenennen, Abkürzungen werden richtig behandeltÖffnen
- Wie funktioniert Base64Leitfaden in verständlicher SpracheÖffnen