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.
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.
| Tegn | Navngitt | Desimal | Heksadesimal |
|---|---|---|---|
& | & | & | & |
< | < | < | < |
> | > | > | > |
" | " | " | " |
' | ' | ' | ' |
(hardt mellomrom) | |   |   |
© | © | © | © |
® | ® | ® | ® |
™ | ™ | ™ | ™ |
€ | € | € | € |
£ | £ | £ | £ |
¥ | ¥ | ¥ | ¥ |
— | — | — | — |
– | – | – | – |
… | … | … | … |
« | « | « | « |
» | » | » | » |
° | ° | ° | ° |
× | × | × | × |
÷ | ÷ | ÷ | ÷ |
é | é | é | é |
π | π | π | π |
→ | → | → | → |
😀 | — | 😀 | 😀 |
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 (é) eller heksadesimal (é). Navngitte referanser er lettere å huske: HTML 4 definerte 252 av dem, som dekker Latin-1-bokstaver som é, greske bokstaver, matematiske symboler og typografiske tegn som — og …. Merkelig nok var ikke ' 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 ✓, ★ og ≂̸ nå fungerer i alle moderne nettlesere. Antallet inkluderer eldre skrivemåter uten avsluttende semikolon, som & og ©, som parsere fortsatt godtar av kompatibilitetshensyn, men som du ikke bør skrive. Koderen her bruker de godt støttede HTML 4-navnene pluss ', 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 & 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å og et vanlig mellomrom?
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 & 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
&,<,>,"og'forhåndsdefinert.