HTML-entiteettien koodaus ja purku

Escapeta teksti, jotta sen voi turvallisesti lisätä HTML:ään, tai muuta entiteetit kuten & ja € takaisin luettaviksi merkeiksi.

Toimii selaimessaEi rekisteröitymistäMitään ei lähetetä

Koodattu

Näin käytät työkalua: HTML-entiteettien koodaus / purku

  1. Valitse Koodaa escapetaksesi tekstin tai Pura muuttaaksesi entiteetit takaisin merkeiksi.
  2. Koodatessa valitse, mitkä merkit escapetaan: vain HTML-erikoismerkit, myös kaikki ei-ASCII-merkit tai kaikki paitsi kirjaimet ja numerot.
  3. Valitse nimetyt entiteetit (é), desimaalimuoto (é) tai heksamuoto (é).
  4. Kopioi tulos. Purettaessa tuntemattomat entiteetit luetellaan, jotta huomaat kirjoitusvirheet.

Miksi HTML pitää escapettaa?

Viidellä merkillä on HTML:ssä erityismerkitys: & aloittaa entiteetin, < ja > rajaavat tagit, ja " ja ' päättävät attribuuttiarvot. Jos käyttäjän syöttämä teksti, joka sisältää niitä, lisätään sivulle escapettamatta, se voi rikkoa asettelun tai pahimmillaan syöttää skriptejä (cross-site scripting, XSS). Escapetus muuttaa ne muotoihin &amp;, &lt;, &gt;, &quot; ja &#x27;, jotka selain näyttää tekstinä.

Nimetyt, desimaali- ja heksaentiteetit

Jokaisen Unicode-merkin voi kirjoittaa numeerisena viittauksena: desimaalina &#8364; tai heksana &#x20AC; merkille €. Monilla yleisillä merkeillä on myös luettava nimi, kuten &euro;, &copy; tai &nbsp;. Numeeriset viittaukset toimivat kaikkialla, myös XML:ssä, joka määrittelee vain viisi nimettyä entiteettiä. Nimetyt entiteetit ovat lähdekoodissa helpompia lukea.

Pitääkö ei-ASCII-merkit koodata?

Ei, jos sivu tarjoillaan UTF-8:na, kuten lähes jokainen moderni sivusto (<meta charset="utf-8">). Merkit kuten é, ü tai 日本 voi kirjoittaa suoraan. Niiden koodaaminen on hyödyllistä vanhoissa järjestelmissä, sähköpostipohjissa tai kun jokin käsittelyketju sotkee ei-ASCII-tekstin.

Escapetus riippuu kontekstista

HTML-entiteettien escapetus suojaa elementin sisältöön ja lainausmerkeissä oleviin attribuutteihin sijoitettua tekstiä. Se ei riitä arvoille <script>-lohkoissa, inline-tapahtumankäsittelijöissä, CSS:ssä tai URL-osoitteissa, jotka kukin tarvitsevat oman koodauksensa. Suosi kehyksesi automaattista escapetusta (React, Vue, Jinja, Blade) käsin rakennettujen merkkijonojen sijaan.

Usein kysytyt kysymykset

Mitkä merkit on escapetettava HTML:ssä?
Tekstisisällössä & ja < ovat välttämättömiä. Attribuuttiarvoissa escapeta myös käyttämäsi lainausmerkki. Kaikkien viiden (& < > " ') escapetus on turvallinen oletus.
Mikä on &amp;nbsp;?
Sitova välilyönti (U+00A0). Se näyttää välilyönniltä, mutta estää rivinvaihdon eikä sulaudu viereisiin välilyönteihin.
Miksi &amp;copy2024 purkautuu muotoon ©2024?
Taaksepäin yhteensopivuuden vuoksi selaimet purkavat muutamia vanhoja entiteettejä, kuten &copy, &amp ja &lt, myös ilman loppupuolipistettä. Tämä purkaja noudattaa samaa sääntöä. Kirjoita omaan HTML:ääsi aina puolipiste.
Onko heittomerkki &amp;apos; vai &amp;#39;?
&apos; on kelvollinen HTML5:ssä ja XML:ssä mutta ei HTML 4:ssä, joten numeerinen &#39; tai &#x27; on yhteensopivin valinta, ja sen tämä kooderi tuottaa.

Aiheeseen liittyvät työkalut