tigtools

HTML-entiteettien koodaus / dekoodaus

Tee tekstistä turvallista sijoitettavaksi HTML:ään tai muuta entiteetit, kuten & ja é, takaisin tavallisiksi merkeiksi.

Toimii selaimessasi Ei rekisteröitymistä

Suunta

&, <, >, " ja ' suojataan aina. Muut merkit muunnetaan vain, jos valitset vaihtoehdon ei-ASCII-merkeille.

Käyttöohje

  1. Valitse Koodaa tehdäksesi tekstistä HTML-turvallista tai Pura muuttaaksesi entiteetit takaisin merkeiksi.
  2. Valitse koodattaessa, säilytetäänkö aksentilliset kirjaimet ja symbolit ennallaan vai muutetaanko ne entiteeteiksi.
  3. Kirjoita tai liitä teksti; tulos päivittyy välittömästi.
  4. Kopioi tulos tai valitse ”Käytä tulosta syötteenä” ja tarkista, että se purkautuu takaisin alkuperäiseksi.

Näin se toimii

HTML:ssä muutamalla merkillä on erityinen merkitys: < aloittaa tagin, & aloittaa entiteetin ja " tai ' päättää attribuutin arvon. Jotta ne näkyisivät tekstinä, ne on kirjoitettava merkittävinä viittauksina: &lt; merkkille <, &gt; merkkille >, &amp; merkkille &, &quot; merkkille " ja &#39; merkkille '. Heittomerkki käyttää numeerista muotoa, koska &apos; ei ole määritelty HTML 4:ssä.

Kaikki muut merkit, mukaan lukien aksentilliset kirjaimet, kiinalainen teksti ja emojit, voidaan kirjoittaa suoraan, kun sivu tallennetaan ja tarjotaan UTF-8-muodossa, joka on nykyaikaisten verkkosivustojen oletus. Niiden muuntaminen entiteeteiksi on tarpeen vain järjestelmissä, jotka eivät ole UTF-8-turvallisia, kuten joissakin vanhoissa sähköpostimalleissa tai tietokannoissa. Voit sitten valita nimetyt entiteetit, kuten &eacute;, kun yleinen nimi on olemassa (ja numeerinen varavaihtoehto kaikelle muulle) tai numeeriset viittaukset, kuten &#xE9;, jokaiselle merkille.

Dekoodaus ei käytä selaimen HTML-jäsennintä. Se käyttää sisäänrakennettua taulukkoa, jossa on kaikki 252 nimettyä entiteettiä HTML 4.01:stä, &apos; ja noin 30 yleistä HTML5-nimeä, sekä desimaali- ja heksadesimaaliviittaukset. Numeeriset viittaukset noudattavat HTML5-sääntöjä: &#0;, surrogaattiarvot ja arvot yli U+10FFFF muuttuvat korvausmerkiksi , ja arvot 128–159 luetaan Windows-1252:na, joten &#150; muuttuu en-viivaksi. Muutamia vanhoja nimiä, kuten &amp ja &copy, hyväksytään myös ilman päättävää puolipistettä, kuten selaimet tekevät. HTML5 määrittelee yli 2 000 nimeä; harvinaiset, jotka eivät ole taulukossa, jätetään ennalleen ja listataan.

Tekstin escapetus ennen sen lisäämistä HTML:ään on tärkeä suoja cross-site scripting (XSS) -hyökkäyksiä vastaan, mutta se on oikein vain elementtisisällölle ja lainausmerkein kirjoitetuille attribuuttiarvoille. Teksti, joka sijoitetaan <script>-lohkoon, style-attribuuttiin tai URL-osoitteeseen, vaatii erilaisen escapetuksen.

Esimerkit

Koodin näyttäminen verkkosivulla

Näyttääksesi <div class="box"> tekstinä blogikirjoituksessa, koodaa se muotoon &lt;div class=&quot;box&quot;&gt;. Selain näyttää alkuperäisen tagin sen sijaan että loisi elementin.

Tekstin valmistelu vanhaa sähköpostimallia varten

Valinnalla ”Nimetyt entiteetit, kun saatavilla”, ”Café – 5 €” muuttuu muotoon Caf&eacute; &ndash; 5 &euro;, joka näkyy oikein, vaikka sähköposti lähetettäisiin ei-UTF-8-merkistöllä.

Raaputettujen tai vietyjen tekstien siivoaminen

CMS-vienti sisältää Fish &amp; Chips &#8211; &pound;9. Dekoodaus antaa Fish & Chips – £9, valmiina liitettäväksi taulukkolaskentaohjelmaan.

Usein kysytyt kysymykset

Mitkä merkit täytyy suojata HTML:ssä?

Elementtisisällössä & ja < täytyy suojata (> on myös suositeltavaa). Attribuuttiarvoissa täytyy suojata myös arvon ympärillä oleva lainausmerkki. Tämä työkalu noudattaa yksinkertaista ja turvallista sääntöä: kaikki viisi merkkiä (& < > " ') suojataan kaikkialla.

Mitä eroa on nimetyillä ja numeerisilla entiteeteillä?

Nimetyt entiteetit, kuten &copy;, ovat helpommin luettavia, mutta niitä on vain rajoitetulle joukolle merkkejä. Numeeriset viittaukset, kuten &#169; (desimaalinen) tai &#xA9; (heksadesimaalinen), toimivat kaikille Unicode-merkeille, myös emojeille.

Miksi &nbsp; dekoodautuu merkiksi, joka näyttää välilyönniltä?

&nbsp; on sitova välilyönti (U+00A0). Se näyttää tavalliselta välilyönniltä, mutta estää rivinvaihdon, eikä HTML tiivistä sitä. Se on eri merkki kuin tavallinen välilyönti, mikä on merkityksellistä tekstiä verrattaessa tai haettaessa.

Tarvitseeko aksentilliset kirjaimet, kuten é, koodata?

Ei, jos sivu käyttää UTF-8-merkistöä (<meta charset="utf-8">), kuten lähes kaikki nykyaikaiset sivut. Pidä oletusasetus, jolloin vain viisi erikoismerkkiä suojataan.

Riittääkö koodaus estämään XSS:n?

Se riittää epäluotettavalle tekstille, joka lisätään HTML-elementin sisältöön tai lainausmerkein ympäröityihin attribuuttiarvoihin. Se ei riitä JavaScript-koodille, CSS:lle, lainausmerkeittömille attribuuteille eikä URL-osoitteille, kuten href="javascript:…", jotka vaativat tilannekohtaista käsittelyä.

Tietosuoja

Koodaus ja dekoodaus tehdään selaimessasi tavallisilla merkkijono-operaatioilla; tekstiäsi ei koskaan renderöidä HTML:nä, ladata, tallenneta tai sisällytetä analytiikkaan.