/html-entities

HTML-entiteter: koding og dekoding

Kod og dekod HTML-entiteter for spesialtegn som &, <, > og ikke-ASCII-tegn. Alt skjer lokalt.

Slik fungerer det

Skriv inn tekst og velg «Til entiteter» for å gjøre om spesialtegn som &, <, >, " og ' samt ikke-ASCII-tegn til HTML-entiteter, eller «Fra entiteter» for å dekode dem tilbake til vanlig tekst. Nyttig når du skal vise kode eller spesialtegn trygt i HTML. Alt skjer lokalt i nettleseren.

Om dette verktøyet

HTML-entiteter er spesialkoder som lar deg vise tegn som ellers ville forvirret nettleseren, som &lt; for «mindre enn», &amp; for et og-tegn eller &oslash; for bokstaven ø i eldre ASCII-baserte kontekster. De brukes også for emojier, matematiske symboler og typografiske finesser som ikke sitter på tastaturet. Dette verktøyet koder og dekoder begge veier: lim inn rå tekst for å få entitetsversjonen, eller lim inn kodet tekst for å få den lesbare varianten tilbake. Alt kjøres i nettleseren.

Slik bruker du det

  1. Lim inn teksten i «Rå tekst»-feltet for å kode den, eller i «HTML»-feltet for å dekode.
  2. Velg om du vil bruke navngitte entiteter (&aring;) eller numeriske (&#229; / &#xE5;).
  3. Kopier resultatet med ett klikk fra motsatt felt.
  4. Bruk «bare farlige tegn» hvis du vil beholde bokstaver som «æøå» og bare rømme <, >, &, ", '.

Eksempler

Vanlig kode-eksempel
Inn<div class="x">Hei & god tur!</div>
Ut&lt;div class=&quot;x&quot;&gt;Hei &amp; god tur!&lt;/div&gt;
Norske tegn
Innæøå
Ut&aelig;&oslash;&aring;
Om siden bruker UTF-8 og korrekt Content-Type, trenger du ikke koder æøå. Kod bare <, >, &, " og ' for å unngå XSS.

Vanlige bruksområder

  • Trygg innsetting av brukerinput i HTML uten fare for XSS.
  • Kopiere kildekode inn i en bloggpost eller wiki uten at taggene renderes.
  • Håndtere spesialtegn i e-postmaler som må være ASCII-rene.
  • Dekode klippet innhold fra visning av HTML-kilde.
  • Vise matematikk (&sum;, &pi;), pilteikn (&larr;, &rarr;) og valuta (&euro;, &pound;) uansett font.

Ofte stilte spørsmål

Er navngitte entiteter tryggere enn numeriske?
Ikke i seg selv. Numeriske entiteter (&#65;) er alltid gyldige i HTML og XML, mens navngitte (&Aring;) må stå i tabellen for språket ditt. XML-basert innhold, som SVG-attributter, godtar bare fem navngitte: amp, lt, gt, quot, apos. Bruk numeriske ved tvil.
Bør jeg kode alle tegn?
Nei. Med UTF-8 er det bare &, <, > og eventuelt " og ' som må kodes for at HTML-en skal være trygg. Overkoding blåser opp filstørrelsen og gjør kilden mindre lesbar.
Hva er forskjellen på &#229; og &#xE5;?
Ingen visuell forskjell. Første er desimal-notasjon, andre er heksadesimal, begge peker på samme Unicode-kodepunkt (U+00E5, «å»). Bruk det du synes er lettest å lese.
Beskytter dette mot XSS?
Delvis. Å kode <, >, &, ", ' beskytter mot injeksjon i tekstinnhold og attributter, men ikke inne i <script>-blokker, JavaScript-strings eller URL-kontekster. Bruk kontekstbevisste helpers (Astro, React, DOMPurify) i produksjon.

Teknisk bakgrunn

HTML5-spesifikasjonen definerer ca. 2 200 navngitte entiteter, arvet fra SGML og XHTML. En navngitt entitet består av «&», et navn og «;» (eks. &amp;), en numerisk entitet av «&#», et desimaltall og «;» (&#38;), en heksadesimal av «&#x», et hextall og «;» (&#x26;). Alle refererer til Unicode-kodepunkt. Parseren gjenkjenner referansene når «&» følges av gyldige tegn før neste «;», med en spesiell «named character reference»-tabell for kortformer. Kun fem entiteter er obligatoriske i XML (og dermed SVG/XHTML): &amp;, &lt;, &gt;, &quot;, &apos;. HTML5 tillater at semikolonet utelates for enkelte legacy-entiteter (&amp = &amp;), men det anbefales alltid å ha det med. Fra et sikkerhetsperspektiv er kontekstbevisst escaping viktigere enn å pakke alle spesialtegn: en verdi som skal inn i en URL må URL-encodes, inn i en attributt HTML-encodes, inn i JavaScript-streng JS-escapes.