UltKit

Koding og dekoding av HTML-entiteter

Erstatt tegnene som HTML tolker som markering med entiteter, eventuelt også alle tegn utenfor ASCII, eller gjør entiteter som é og — om til vanlig tekst igjen. Begge retninger kjører i nettleseren, og dekodet inndata vises aldri som aktiv HTML.

Modus
Entitetsstil
Escape

0 tegn · 0 ord · 0 linjer

0 tegn · 0 ord · 0 linjer

Kjører helt i denne nettleserfanen. Teksten din lastes aldri opp eller lagres.

Vanlige tegn og entitetene deres

Navngitte, desimale og heksadesimale former dekodes alle til samme tegn. Koderen kjenner 216 vanlige navngitte entiteter; dekoderen forstår alle navngitte referanser i HTML-standarden.

TegnNavngittDesimalHeksadesimal
&&&&
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
"&quot;&#34;&#x22;
'&apos;&#39;&#x27;
(hardt mellomrom)&nbsp;&#160;&#xA0;
©&copy;&#169;&#xA9;
®&reg;&#174;&#xAE;
™&trade;&#8482;&#x2122;
€&euro;&#8364;&#x20AC;
£&pound;&#163;&#xA3;
¥&yen;&#165;&#xA5;
—&mdash;&#8212;&#x2014;
–&ndash;&#8211;&#x2013;
…&hellip;&#8230;&#x2026;
«&laquo;&#171;&#xAB;
»&raquo;&#187;&#xBB;
°&deg;&#176;&#xB0;
×&times;&#215;&#xD7;
÷&divide;&#247;&#xF7;
é&eacute;&#233;&#xE9;
π&pi;&#960;&#x3C0;
→&rarr;&#8594;&#x2192;
😀—&#128512;&#x1F600;

Fra 252 entiteter i HTML 4 til 2 231 i HTML5

En tegnreferanse er en måte å skrive et tegn på med bare ASCII. Numeriske referanser fungerer for alle Unicode-kodepunkter, i desimal (&#233;) eller heksadesimal (&#xE9;). Navngitte referanser er lettere å huske: HTML 4 definerte 252 av dem, som dekker Latin-1-bokstaver som &eacute;, greske bokstaver, matematiske symboler og typografiske tegn som &mdash; og &hellip;. Merkelig nok var ikke &apos; blant dem; den kom fra XML og ble først gyldig HTML med HTML5.

HTML5 utvidet listen til 2 231 navngitte tegnreferanser og tok opp MathML-entitetene, så navn som &check;, &bigstar; og &NotEqualTilde; nå fungerer i alle moderne nettlesere. Antallet inkluderer eldre skrivemåter uten avsluttende semikolon, som &amp og &copy, som parsere fortsatt godtar av kompatibilitetshensyn, men som du ikke bør skrive. Koderen her bruker de godt støttede HTML 4-navnene pluss &apos;, og faller tilbake på en numerisk referanse for alt annet. Dekoderen sender teksten til nettleserens egen parser, så den forstår alle de 2 231 navnene.

Hva som bør kodes, og når koding ikke er nok

Bare & < > " ' er innstillingen for vanlig bruk: den escaper de fem tegnene som kan avslutte en tekstnode eller en attributtverdi i anførselstegn, og det er nok til å vise et kodeeksempel på en side eller sette inn brukertekst trygt i HTML. Også alle tegn utenfor ASCII gjør også é, € og emojier om til referanser, for sjeldne kanaler som ikke kan bære UTF-8, for eksempel enkelte eldre e-postmaler eller systemer som ødelegger tegnkodinger. Navngitt, Desimal og Heksadesimal endrer bare hvordan en referanse skrives; alle tre dekodes til samme tegn. En side lagret som UTF-8 trenger ingen entiteter for bokstaver med aksent.

Escaping beskytter bare HTML-konteksten. Tekst som settes inn i en script-blokk, en innebygd hendelsesbehandler som onclick, et style-attributt eller en href som kan starte med javascript:, krever annen håndtering, og entitetskoding alene hindrer ikke cross-site scripting der. Rammeverk som React escaper tekst som standard, så dobbel escaping er den vanligste feilen i moderne apper: brukerne ser &amp; der det skulle vært en og-tegn. Hvis du vil fjerne tagger helt, kan du konvertere markeringen med HTML til TXT. For escaping i URL-er, bruk URL-koding og dekoding.

Ofte stilte spørsmål

Hvilke tegn må kodes som entiteter i HTML?
I tekst er & og < de viktigste, og > escapes etter konvensjon. I en attributtverdi må du også escape anførselstegnet som avgrenser den. Å escape alle fem dekker begge tilfeller.
Hva er forskjellen på &nbsp; og et vanlig mellomrom?
&nbsp; er det hardt mellomrommet, U+00A0. Det ser ut som et mellomrom, men hindrer linjeskift på det stedet og slås ikke sammen når flere står etter hverandre, i motsetning til vanlige mellomrom i HTML.
Hvorfor viser siden min &amp; i stedet for et og-tegn?
Teksten ble escapet to ganger: én gang i dataene dine og igjen av malen eller rammeverket. Lagre rå tekst og la ett lag, vanligvis malen, gjøre escapingen ved utskrift.
Er det trygt å dekode HTML fra en ukjent kilde her?
Ja. Dekoderen behandler inndata som ren tekst, så det opprettes ingen tagger, skript kjøres ikke og bilder lastes ikke. Bare entitetsreferanser gjøres om til tegn.
Er navngitte eller numeriske entiteter best?
Navngitte er lettere å lese, numeriske fungerer for alle tegn og i alle XML-parsere. I XML uten DTD er bare &amp;, &lt;, &gt;, &quot; og &apos; forhåndsdefinert.