tigtools

HTML-entitetskoder / -dekoder

Gjør tekst trygg å plassere i HTML, eller gjør entiteter som & og é tilbake til vanlige tegn.

Kjører i nettleseren din Ingen registrering

Retning

& < > " og ' blir alltid omgjort til entiteter. Andre tegn konverteres bare hvis du velger et alternativ for ikke-ASCII-tegn.

Slik bruker du det

  1. Velg Kod for å gjøre tekst trygg for HTML, eller Dekod for å gjøre om entiteter til tegn igjen.
  2. Når du koder, velg om bokstaver med aksent og symboler skal beholdes som de er eller gjøres om til entiteter.
  3. Skriv eller lim inn teksten din; resultatet oppdateres umiddelbart.
  4. Kopier resultatet, eller bruk «Bruk utdata som inndata» for å sjekke at det dekodes tilbake til originalen.

Slik fungerer det

I HTML har noen få tegn spesiell betydning: < starter en tagg, & starter en entitet, og " eller ' avslutter en attributtverdi. For å vise dem som tekst må de skrives som tegnreferanser: &lt; for <, &gt; for >, &amp; for &, &quot; for " og &#39; for '. Apostrofen bruker den numeriske formen fordi &apos; ikke er definert i HTML 4.

Alle andre tegn, inkludert aksenttegn, kinesisk tekst og emoji, kan skrives direkte når siden lagres og serveres som UTF-8, som er standarden for moderne nettsteder. Å konvertere dem til entiteter er bare nødvendig for systemer som ikke er UTF-8-sikre, for eksempel noen gamle e-postmaler eller databaser. Du kan da velge navngitte entiteter som &eacute; der et vanlig navn finnes (med numerisk tilbakefall for alt annet) eller numeriske referanser som &#xE9; for hvert tegn.

Dekoding bruker ikke nettleserens HTML-parser. Den bruker en innebygd tabell med alle 252 navngitte entiteter fra HTML 4.01, &apos; og omtrent 30 vanlige HTML5-navn, pluss desimale og heksadesimale referanser. Numeriske referanser følger HTML5-reglene: &#0;, surrogatverdier og verdier over U+10FFFF blir erstatningstegnet , og verdiene 128–159 leses som Windows-1252, så &#150; blir en tankestrek. Noen få eldre navn som &amp og &copy godtas også uten avsluttende semikolon, slik nettlesere gjør. HTML5 definerer over 2 000 navn; sjeldne som ikke er i tabellen, blir stående uendret og listet opp.

Å escape tekst før den settes inn i HTML er et viktig forsvar mot cross-site scripting (XSS), men det er bare riktig for elementinnhold og attributtverdier i anførselstegn. Tekst plassert inne i en <script>-blokk, et stilattributt eller en URL trenger forskjellig escaping.

Eksempler

Vise kode på en nettside

For å vise <div class="box"> som tekst i et blogginnlegg, koder du den til &lt;div class=&quot;box&quot;&gt;. Nettleseren viser den opprinnelige taggen i stedet for å opprette et element.

Klargjøre tekst for en gammel e-postmal

Med «Navngitte entiteter der de finnes» blir «Café – 5 €» til Caf&eacute; &ndash; 5 &euro;, som vises riktig selv om e-posten sendes med et ikke-UTF-8-tegnsett.

Rydde opp i tekst fra skraping eller eksport

En CMS-eksport inneholder Fish &amp; Chips &#8211; &pound;9. Dekoding gir Fish & Chips – £9, klar til å lime inn i et regneark.

Ofte stilte spørsmål

Hvilke tegn må escapes i HTML?

I elementinnhold må & og < escapes (> anbefales også). Inne i attributtverdier må du også escape anførselstegnet som omgir verdien. Å escape alle fem (& < > " ') overalt er den enkle og trygge regelen dette verktøyet følger.

Hva er forskjellen mellom navngitte og numeriske entiteter?

Navngitte entiteter som &copy; er lettere å lese, men finnes bare for et begrenset sett med tegn. Numeriske referanser som &#169; (desimalt) eller &#xA9; (heksadesimalt) fungerer for alle Unicode-tegn, inkludert emoji.

Hvorfor dekodes &nbsp; til noe som ser ut som et mellomrom?

&nbsp; er et hardt mellomrom (U+00A0). Det ser ut som et vanlig mellomrom, men hindrer linjeskift og slås ikke sammen av HTML. Det er et annet tegn enn det vanlige mellomrommet, noe som har betydning når du sammenligner eller søker i tekst.

Må jeg kode aksentuerte bokstaver som é?

Ikke hvis siden din bruker UTF-8 (<meta charset="utf-8">), noe nesten alle moderne sider gjør. Behold standardinnstillingen, så blir bare de fem spesialtegnene escapet.

Er koding nok til å forhindre XSS?

Det er nok for tekst du ikke stoler på som settes inn i HTML-elementinnhold eller i attributtverdier med anførselstegn. Det er ikke nok for JavaScript-kode, CSS, attributter uten anførselstegn eller URL-er som href="javascript:…", som krever kontekstspesifikk håndtering.

Personvern

Koding og dekoding utføres med vanlige strengoperasjoner i nettleseren din; teksten din blir aldri gjengitt som HTML, lastet opp, lagret eller inkludert i analyse.