tigtools

HTML-entitás kódoló / dekódoló

Tegye biztonságossá a szöveget HTML-be illesztéshez, vagy alakítsa vissza az olyan entitásokat, mint az & és az é, normál karakterekké.

Böngészőben fut Regisztráció nélkül

Irány

A &, <, >, " és ' karakterek mindig escape-elésre kerülnek. Más karakterek csak akkor alakulnak át, ha a nem ASCII karakterekhez kiválaszt egy lehetőséget.

Használata

  1. Válassza a Kódolás lehetőséget, hogy a szöveget HTML-ben biztonságossá tegye, vagy a Dekódolás lehetőséget, hogy az entitásokat karakterekké alakítsa vissza.
  2. Kódoláskor válassza ki, hogy az ékezetes betűk és szimbólumok változatlanok maradjanak-e, vagy entitásokká alakuljanak.
  3. Gépelje be vagy illessze be a szöveget; az eredmény azonnal frissül.
  4. Másolja ki az eredményt, vagy a „Kimenet használata bemenetként” lehetőséggel ellenőrizze, hogy az visszafejthető-e az eredetire.

Hogyan működik

A HTML-ben néhány karakternek különleges jelentése van: a < egy taget nyit, az & egy entitást kezd, a " vagy a ' pedig egy attribútumértéket zár le. Ahhoz, hogy szövegként jelenjenek meg, karakterhivatkozásként kell őket írni: &lt; a <, &gt; a >, &amp; az &, &quot; a " és &#39; a ' helyett. Az aposztróf azért használ numerikus alakot, mert az &apos; nincs definiálva a HTML 4-ben.

Az összes többi karakter, beleértve az ékezetes betűket, a kínai szöveget és az emojikat, közvetlenül is írható, ha az oldalt UTF-8 kódolással mentik és szolgálják ki; ez a modern weboldalak alapértelmezése. Entitásokká alakításuk csak olyan rendszereknél szükséges, amelyek nem kezelik biztonságosan az UTF-8-at, például egyes régi e-mail sablonoknál vagy adatbázisoknál. Ilyenkor választhat nevesített entitásokat, például &eacute;, ahol létezik elterjedt név (minden más esetben numerikus tartalékkal), vagy numerikus hivatkozásokat, például &#xE9;, minden karakterhez.

A dekódolás nem a böngésző HTML-elemzőjét használja. Beépített táblázatot használ a HTML 4.01 mind a 252 elnevezett entitásával, az &apos;-szal és körülbelül 30 gyakori HTML5-névvel, valamint a decimális és hexadecimális hivatkozásokkal. A numerikus hivatkozások a HTML5 szabályait követik: a &#0;, a helyettesítő (surrogate) értékek és az U+10FFFF feletti értékek a helyettesítő karakter () lesznek, a 128–159 közötti értékek pedig Windows-1252-ként értelmezendők, így a &#150; félkvirtmínusz lesz. Néhány régi név, például az &amp és a &copy, a záró pontosvessző nélkül is elfogadott, ahogy a böngészők is teszik. A HTML5 több mint 2000 nevet definiál; a táblázaton kívüli ritka nevek változatlanul maradnak, és listázzuk őket.

A szöveg HTML-be illesztés előtti escape-elése fontos védekezés a cross-site scripting (XSS) ellen, de csak elemtartalom és idézőjeles attribútumértékek esetén megfelelő. A <script> blokkba, style attribútumba vagy URL-be helyezett szöveg másfajta escape-elést igényel.

Példák

Kód megjelenítése weboldalon

Ha egy blogbejegyzésben a <div class="box"> kódot szövegként szeretné megjeleníteni, kódolja így: &lt;div class=&quot;box&quot;&gt;. A böngésző ekkor az eredeti taget mutatja ahelyett, hogy elemet hozna létre.

Szöveg előkészítése régi e-mail sablonhoz

A „Nevesített entitások, ahol elérhetők” beállítással a „Café – 5 €” ebből lesz: Caf&eacute; &ndash; 5 &euro;, ami akkor is helyesen jelenik meg, ha az e-mailt nem UTF-8 karakterkészlettel küldik.

Kigyűjtött vagy exportált szöveg tisztítása

Egy CMS-export ezt tartalmazza: Fish &amp; Chips &#8211; &pound;9. Dekódolás után: Fish & Chips – £9, amelyet rögtön beilleszthet egy táblázatkezelőbe.

Gyakori kérdések

Mely karaktereket kell escape-elni HTML-ben?

Elemtartalomban az & és a < karaktereket kötelező escape-elni (a > esetében is ajánlott). Attribútumértékekben az értéket körülvevő idézőjelet is escape-elni kell. Mind az öt karakter (& < > " ') escape-elése mindenhol egyszerű és biztonságos szabály, amelyet ez az eszköz követ.

Mi a különbség a nevesített és a numerikus entitások között?

Nevesített entitások, például a &copy; könnyebben olvashatók, de csak korlátozott karakterkészlethez léteznek. A numerikus hivatkozások, például a &#169; (tizedes) vagy az &#xA9; (hexadecimális) minden Unicode-karakterhez működnek, az emojikat is beleértve.

Miért dekódolódik az &nbsp; olyasmire, ami szóköznek látszik?

Az &nbsp; nem törhető szóköz (U+00A0). Úgy néz ki, mint egy normál szóköz, de megakadályozza a sortörést, és a HTML nem vonja össze. Más karakter, mint a közönséges szóköz, ami összehasonlításkor vagy kereséskor számít.

Kell-e kódolnom az ékezetes betűket, például az é-t?

Nem szükséges, ha az oldal UTF-8 kódolást használ (<meta charset="utf-8">), mint szinte minden modern oldal. Hagyja az alapértelmezett beállítást, és csak az öt speciális karakter lesz escape-elve.

Elég a kódolás az XSS megelőzéséhez?

Ez elegendő a nem megbízható szövegek HTML-elemtartalomba vagy idézőjeles attribútumértékekbe illesztéséhez. Nem elegendő JavaScript-kódhoz, CSS-hez, idézőjelek nélküli attribútumokhoz vagy olyan URL-ekhez, mint a href="javascript:…", amelyek környezetfüggő kezelést igényelnek.

Adatvédelem

A kódolás és dekódolás egyszerű sztringműveletekkel történik a böngészőjében; a szövege soha nem kerül HTML-ként megjelenítésre, feltöltésre, tárolásra, és nem szerepel az analitikában.