Cum se folosește
- Alege Codifică pentru a face textul sigur pentru HTML sau Decodifică pentru a transforma entitățile înapoi în caractere.
- La codificare, alege dacă literele cu accent și simbolurile să rămână ca atare sau să devină entități.
- Scrie sau lipește textul; rezultatul se actualizează instantaneu.
- Copiază rezultatul sau folosește „Folosește ieșirea ca intrare” pentru a verifica că se decodează înapoi la original.
Cum funcționează
În HTML, câteva caractere au o semnificație specială: < deschide o etichetă, & începe o entitate, iar " sau ' încheie valoarea unui atribut. Pentru a le afișa ca text, ele trebuie scrise ca referințe de caracter: < pentru <, > pentru >, & pentru &, " pentru " și ' pentru '. Apostroful folosește forma numerică deoarece ' nu este definit în HTML 4.
Toate celelalte caractere, inclusiv literele cu diacritice, textul chinezesc și emoji-urile, pot fi scrise direct atunci când pagina este salvată și servită ca UTF-8, ceea ce este implicit pentru site-urile moderne. Conversia lor în entități este necesară doar pentru sistemele care nu gestionează corect UTF-8, cum ar fi unele șabloane de e-mail vechi sau baze de date. Puteți alege apoi entități denumite, cum ar fi é, atunci când există un nume comun (cu o variantă numerică de rezervă pentru restul) sau referințe numerice, cum ar fi é, pentru fiecare caracter.
Decodarea nu folosește parserul HTML al browserului. Folosește un tabel intern cu toate cele 252 de entități denumite din HTML 4.01, ' și aproximativ 30 de nume HTML5 comune, plus referințe zecimale și hexazecimale. Referințele numerice respectă regulile HTML5: �, valorile surrogate și valorile peste U+10FFFF devin caracterul de înlocuire , iar valorile 128–159 sunt interpretate ca Windows-1252, astfel încât – devine un en dash. Câteva nume vechi, cum ar fi & și ©, sunt de asemenea acceptate fără punct și virgulă final, așa cum fac browserele. HTML5 definește peste 2.000 de nume; cele rare, care nu se află în tabel, sunt lăsate neschimbate și listate.
Escaparea textului înainte de a-l insera în HTML este o apărare importantă împotriva cross-site scripting (XSS), dar este corectă doar pentru conținutul elementelor și pentru valorile de atribut puse între ghilimele. Textul plasat într-un bloc <script>, într-un atribut style sau într-un URL necesită o escapare diferită.
Exemple
Afișarea codului pe o pagină web
Pentru a afișa <div class="box"> ca text într-un articol de blog, codificați-l ca <div class="box">. Browserul arată eticheta originală în loc să creeze un element.
Pregătirea textului pentru un șablon de e-mail vechi
Cu „Entități denumite atunci când sunt disponibile”, „Café – 5 €” devine Café – 5 €, ceea ce se afișează corect chiar dacă e-mailul este trimis cu un set de caractere non-UTF-8.
Curățarea textului preluat sau exportat
Un export dintr-un CMS conține Fish & Chips – £9. Decodarea dă Fish & Chips – £9, gata de lipit într-o foaie de calcul.
Întrebări frecvente
Ce caractere trebuie escapate în HTML?
În conținutul elementelor, & și < trebuie escapate (se recomandă și >). În valorile atributelor, escapează și caracterul ghilimea care înconjoară valoarea. Escaparea tuturor celor cinci caractere (& < > " ') peste tot este regula simplă și sigură pe care o urmează acest instrument.
Care este diferența dintre entitățile denumite și cele numerice?
Entitățile denumite, cum ar fi ©, sunt mai ușor de citit, dar există doar pentru un set limitat de caractere. Referințele numerice, cum ar fi © (zecimal) sau © (hexazecimal), funcționează pentru orice caracter Unicode, inclusiv emoji.
De ce se decodează ca un caracter care arată ca un spațiu?
este un spațiu de neîntrerupt (U+00A0). Arată ca un spațiu normal, dar împiedică trecerea la o linie nouă și nu este colapsat de HTML. Este un caracter diferit de spațiul obișnuit, lucru care contează atunci când compari sau cauți text.
Trebuie să codific literele cu accent, cum ar fi é?
Nu, dacă pagina folosește UTF-8 (<meta charset="utf-8">), așa cum o fac aproape toate paginile moderne. Păstrează setarea implicită și doar cele cinci caractere speciale vor fi escapate.
Este suficientă codificarea pentru a preveni XSS?
Este suficientă pentru textul nesigur introdus în conținutul elementelor HTML sau în valori de atribute delimitate de ghilimele. Nu este suficientă pentru cod JavaScript, CSS, atribute fără ghilimele sau URL-uri precum href="javascript:…", care necesită tratare specifică contextului.
Confidențialitate
Codificarea și decodificarea se fac prin operații simple cu șiruri de caractere în browserul tău; textul nu este niciodată randat ca HTML, încărcat, stocat sau inclus în datele de analiză.