tigtools

HTML-entitetskodare / avkodare

Gör text säker att infoga i HTML, eller omvandla entiteter som & och é tillbaka till vanliga tecken.

Körs i din webbläsare Ingen registrering

Riktning

& < > " och ' escapas alltid. Övriga tecken konverteras endast om du väljer ett alternativ för icke-ASCII-tecken.

Så här använder du det

  1. Välj Koda för att göra text säker för HTML, eller Avkoda för att omvandla entiteter tillbaka till tecken.
  2. När du kodar väljer du om bokstäver med accenter och symboler ska behållas som de är eller omvandlas till entiteter.
  3. Skriv eller klistra in din text; resultatet uppdateras direkt.
  4. Kopiera resultatet eller använd ”Använd resultat som indata” för att kontrollera att det avkodas tillbaka till originalet.

Så fungerar det

I HTML har några tecken särskild betydelse: < inleder en tagg, & inleder en entitet och " eller ' avslutar ett attributvärde. För att visa dem som text måste de skrivas som teckenreferenser: &lt; för <, &gt; för >, &amp; för &, &quot; för " och &#39; för '. Apostrofen använder den numeriska formen eftersom &apos; inte är definierad i HTML 4.

Alla andra tecken, inklusive accentuerade tecken, kinesisk text och emoji, kan skrivas direkt när sidan sparas och skickas som UTF-8, vilket är standard för moderna webbplatser. Att konvertera dem till entiteter behövs bara för system som inte är UTF-8-säkra, till exempel vissa gamla e-postmallar eller databaser. Du kan då välja namngivna entiteter som &eacute; där ett vanligt namn finns (med numerisk reserv för allt annat) eller numeriska referenser som &#xE9; för varje tecken.

Avkodningen använder inte webbläsarens HTML-parser. Den använder en inbyggd tabell med alla 252 namngivna entiteter från HTML 4.01, &apos; och cirka 30 vanliga HTML5-namn, plus decimala och hexadecimala referenser. Numeriska referenser följer HTML5-reglerna: &#0;, surrogatvärden och värden över U+10FFFF blir ersättningstecknet , och värden 128–159 läses som Windows-1252, så &#150; blir ett tankstreck. Några äldre namn som &amp och &copy accepteras också utan avslutande semikolon, precis som webbläsare gör. HTML5 definierar över 2 000 namn; ovanliga utanför tabellen lämnas oförändrade och listas.

Att escape:a text innan den infogas i HTML är ett viktigt skydd mot cross-site scripting (XSS), men det är endast korrekt för elementinnehåll och attributvärden inom citattecken. Text som placeras i ett <script>-block, ett style-attribut eller en URL kräver en annan typ av escape.

Exempel

Visa kod på en webbsida

För att visa <div class="box"> som text i ett blogginlägg kodar du det till &lt;div class=&quot;box&quot;&gt;. Webbläsaren visar den ursprungliga taggen i stället för att skapa ett element.

Förbereda text för en gammal e-postmall

Med ”Namngivna entiteter där det finns” blir ”Café – 5 €” Caf&eacute; &ndash; 5 &euro;, vilket visas korrekt även om e-postmeddelandet skickas med en teckenuppsättning som inte är UTF-8.

Rensa upp skrapad eller exporterad text

En CMS-export innehåller Fish &amp; Chips &#8211; &pound;9. Avkodning ger Fish & Chips – £9, redo att klistra in i ett kalkylblad.

Vanliga frågor

Vilka tecken måste escapas i HTML?

I elementinnehåll måste & och < escapas (> rekommenderas också). Inuti attributvärden ska även citattecknet som omger värdet escapas. Att escapa alla fem (& < > " ') överallt är den enkla, säkra regeln som det här verktyget följer.

Vad är skillnaden mellan namngivna och numeriska entiteter?

Namngivna entiteter som &copy; är lättare att läsa men finns bara för en begränsad uppsättning tecken. Numeriska referenser som &#169; (decimalt) eller &#xA9; (hexadecimalt) fungerar för alla Unicode-tecken, inklusive emoji.

Varför avkodas &nbsp; till något som ser ut som ett mellanslag?

&nbsp; är ett hårt mellanslag (U+00A0). Det ser ut som ett vanligt mellanslag men förhindrar radbrytning och slås inte ihop av HTML. Det är ett annat tecken än det vanliga mellanslaget, vilket spelar roll när du jämför eller söker i text.

Behöver jag koda bokstäver med accenter som é?

Inte om din sida använder UTF-8 (<meta charset="utf-8">), vilket nästan alla moderna sidor gör. Behåll standardinställningen så escapas endast de fem specialtecknen.

Räcker kodning för att förhindra XSS?

Det räcker för opålitlig text som infogas i HTML-elementinnehåll eller i attributvärden inom citattecken. Det räcker inte för JavaScript-kod, CSS, attribut utan citattecken eller webbadresser som href="javascript:…", som kräver kontextspecifik hantering.

Integritet

Kodning och avkodning görs med vanliga strängoperationer i din webbläsare; din text renderas aldrig som HTML, laddas inte upp, lagras inte och ingår inte i analys.