Használata
- 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.
- Kódoláskor válassza ki, hogy az ékezetes betűk és szimbólumok változatlanok maradjanak-e, vagy entitásokká alakuljanak.
- Gépelje be vagy illessze be a szöveget; az eredmény azonnal frissül.
- 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: < a <, > a >, & az &, " a " és ' a ' helyett. Az aposztróf azért használ numerikus alakot, mert az ' 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 é, ahol létezik elterjedt név (minden más esetben numerikus tartalékkal), vagy numerikus hivatkozásokat, például é, 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 '-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 �, 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 – félkvirtmínusz lesz. Néhány régi név, például az & és a ©, 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: <div class="box">. 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é – 5 €, 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 & Chips – £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 © könnyebben olvashatók, de csak korlátozott karakterkészlethez léteznek. A numerikus hivatkozások, például a © (tizedes) vagy az © (hexadecimális) minden Unicode-karakterhez működnek, az emojikat is beleértve.
Miért dekódolódik az olyasmire, ami szóköznek látszik?
Az 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.