HTML-escaping är processen att ersätta tecken med särskild betydelse i HTML med deras motsvarande entitetsreferenser. De fem tecken som måste escapas är et-tecken (&), less-than (<), greater-than (>), dubbelt citattecken (") och enkelt citattecken ('). Utan escaping tolkar webbläsaren dessa tecken som uppmärkningsinstruktioner i stället för visningsbar text, vilket bryter sidans rendering och öppnar dörren för injektionsattacker.
HTML-specifikationen (underhållen av WHATWG) definierar två former av teckensreferenser: namngivna entiteter som & och numeriska entiteter som & eller &. Namngivna entiteter är lättare att läsa i källkod. Numeriska entiteter (decimala eller hexadecimala) kan representera vilken Unicode-kodpunkt som helst, vilket gör dem användbara för tecken som saknar ett namngivet alias. Båda formerna ger identisk utdata i webbläsaren.
Unescaping (även kallat avkodning) är den omvända operationen: att konvertera entitetsreferenser tillbaka till deras literala tecken. Detta är vanligt vid extraktion av text från HTML-källa, migrering av innehåll mellan system, eller felsökning av mallar som dubbelkodar entiteter. Det här verktyget hanterar båda riktningarna i webbläsaren, så du kan verifiera din escaping-logik eller återskapa klartext från en HTML-tung källa på några sekunder.
Varför använda ett HTML escape-verktyg?
Att manuellt ersätta vinkelparenteser och et-tecken i stora textblock är tidskrävande och felbenäget. Ett dedikerat verktyg konverterar din indata i ett steg utan att du behöver installera något.
⚡
Omedelbar konvertering
Klistra in text eller HTML och få escapad eller unescapad utdata direkt. Ingen väntan på ett serveranrop eftersom all bearbetning sker lokalt i JavaScript.
🔒
Integritetsfokuserad bearbetning
Din indata lämnar aldrig webbläsaren. Ingenting skickas till en server eller lagras någonstans, så du kan tryggt escapa uppmärkning som innehåller inloggningsuppgifter, API-nycklar eller intern kod.
📋
Inget konto eller installation krävs
Öppna sidan och börja klistra in. Det finns ingen inloggningsspärr, ingen e-postverifiering och ingen programvara att installera. Fungerar på valfri enhet med en modern webbläsare.
🌐
Full entitetstäckning
Hanterar de fem obligatoriska HTML-specialtecknen samt numeriska entiteter (decimala och hexadecimala). Stöder tur-och-retur-konvertering: escape följt av unescape returnerar den ursprungliga strängen.
Användningsområden för HTML escape
Frontend-utvecklare: visa användarindata
När du renderar användarskickad text inuti en sida, escapa den först för att förhindra att webbläsaren tolkar den som HTML-taggar. Detta är det primära skyddet mot lagrad XSS i mallar som skriver ut råa strängar.
Backend-ingenjör: generera HTML-svar
Serversideskod som sammanfogar strängar till HTML måste escapa dynamiska värden innan de infogas. Använd det här verktyget för att verifiera att din escape-funktion ger korrekt utdata för kantfall som nästlade citattecken.
DevOps: bädda in konfiguration i HTML
Inline-JSON eller shell-kommandon inuti en HTML-sida (t.ex. i en script-tagg eller ett data-attribut) kräver escaping. Kontrollera att vinkelparenteser och et-tecken i dina konfigurationskodsnuttar är korrekt kodade.
QA-ingenjör: testa XSS-vektorer
Klistra in vanliga XSS-nyttolaster i verktyget för att bekräfta att din applikations utdata matchar den korrekt escapade versionen. Jämför den escapade utdatan tecken för tecken mot vad din app producerar.
Teknisk skribent: kodexempel i dokumentation
Att publicera kodsnuttar i HTML-baserad dokumentation (Jekyll, Hugo, anpassade CMS:er) kräver escaping av vinkelparenteser för generisk typsyntax och mallplatshållare. Klistra in ditt kodexempel och varje specialtecken kodas omedelbart.
Student: lär dig HTML-entiteter
Skriv eller klistra in valfritt tecken och se dess namngivna och numeriska entitetsformer. Experimentera med kantfall som icke-brytande mellanslag, em-tankar och Unicode-symboler för att förstå hur HTML-teckenkodning fungerar.
Referenstabell för HTML-entiteter
Tabellen nedan listar vanligt använda HTML-entiteter. De fem specialtecknen (& < > " ') måste alltid escapas i HTML-innehåll och attributvärden. Övriga entiteter är valfria men användbara för tecken som är svåra att skriva eller tvetydiga i källkod.
Escaping vs. unescaping: när du ska använda respektive
De två operationerna är varandras inverser. Att välja fel riktning ger dubbelkodad eller oskyddad utdata.
Escape (kodning)
Använd när du infogar opålitlig eller dynamisk text i HTML. Konverterar literalt < till < så att webbläsaren visar tecknet i stället för att starta en tagg. Tillämpa innan du renderar användarindata, loggposter eller valfri sträng som kan innehålla uppmärkning.
Unescape (avkodning)
Använd när du extraherar klartext från en HTML-källa. Konverterar < tillbaka till <. Tillämpa vid migrering av innehåll från ett CMS, parsning av skrapad HTML eller korrigering av dubbelkodade strängar som &amp; som visar entitetsnamn i stället för tecken.
Kodexempel
Nedan finns fungerande exempel på HTML-escaping och unescaping i fyra språk. Varje kodsnutt täcker båda riktningarna och hanterar kantfall som nästlade citattecken och numeriska entiteter.
Vad är skillnaden mellan HTML-escaping och URL-kodning?
HTML-escaping ersätter tecken som är speciella i HTML (< > & " ') med entitetsreferenser som < så att de visas som text. URL-kodning (percent-encoding) ersätter tecken som är osäkra i URL:er med %XX-hexsekvenser. De skyddar olika kontexter: HTML-escaping förhindrar uppmärkningsinjektion, medan URL-kodning säkerställer giltiga frågesträngar och sökvägssegment.
Vilka tecken måste escapas i HTML?
De fem tecken som alltid måste escapas är: & (et-tecken), < (less-than), > (greater-than), " (dubbelt citattecken i attribut) och ' (enkelt citattecken i attribut). Att missa att escapa något av dessa kan bryta renderingen eller skapa en sårbarhet för cross-site scripting.
Är ' giltig i HTML5?
Ja. Den namngivna entiteten ' är definierad i HTML5-specifikationen och stöds av alla moderna webbläsare. Den ingick inte i HTML 4, som bara kände igen &, <, > och ". Om du behöver stödja mycket gamla HTML 4-parsers, använd den numeriska formen ' i stället.
Hur åtgärdar jag dubbelkodade HTML-entiteter som &amp;?
Dubbelkodning uppstår när en redan escapad sträng passerar escape-funktionen en andra gång. Lösningen är att unescape tills utdatan stabiliseras. Klistra in den dubbelkodade strängen i det här verktyget i unescape-läge och kör igen om &-referenser kvarstår. För att förhindra dubbelkodning, kontrollera om indata redan är escapad innan du tillämpar escape-funktionen.
Kan jag använda HTML-entiteter inuti JavaScript-strängar?
HTML-entiteter tolkas av HTML-parsern, inte av JavaScript-motorn. Inuti ett script-block körs koden efter att HTML-parsern bearbetat sidan, så < i ett script-block blir < innan JavaScript ser det. För inline-händelsehanterare (onclick osv.) HTML-avkodas attributvärdet först, sedan exekveras det som JavaScript. I externa .js-filer har entiteter ingen särskild betydelse och behandlas som literaltext.
Vad är skillnaden mellan htmlspecialchars och htmlentities i PHP?
htmlspecialchars() escapar bara de fem specialtecknen (& < > " ') som påverkar HTML-strukturen. htmlentities() escapar dessa fem plus varje tecken som har en namngiven HTML-entitet, som copyrighttecknet och accentbokstäver. För säkerhetssyften räcker htmlspecialchars() med ENT_QUOTES. htmlentities() är användbart när du behöver ASCII-säker utdata för system som inte kan hantera UTF-8.
Räcker HTML-escaping för att förhindra XSS?
HTML-escaping förhindrar XSS i det vanligaste fallet: att infoga opålitlig text i HTML-elementinnehåll eller attributvärden. Det skyddar inte andra injektionskontexter. Att infoga användardata i ett script-block kräver JavaScript-strängescaping. Infogning i ett style-attribut kräver CSS-escaping. Infogning i ett URL-attribut (href, src) kräver URL-validering plus kodning. Ett komplett XSS-skydd tillämpar kontextspecifik escaping vid varje infogningspunkt.