Kódovanie a dekódovanie HTML entít
Zakódujte znaky, ktoré HTML považuje za značky, voliteľne aj všetky znaky mimo ASCII, alebo preveďte entity ako é a — späť na obyčajný text. Oba smery prebiehajú vo vašom prehliadači a dekódovaný vstup sa nikdy nevykreslí ako živé HTML.
0 znakov · 0 slov · 0 riadkov
0 znakov · 0 slov · 0 riadkov
Všetko prebieha priamo v tejto karte prehliadača. Váš text sa nikdy nenahráva ani neukladá.
Bežné znaky a ich entity
Pomenovaná, desiatková aj hexadecimálna forma sa dekódujú na rovnaký znak. Kodér pozná 216 bežných pomenovaných entít; dekodér rozumie všetkým pomenovaným odkazom zo štandardu HTML.
| Znak | Pomenované | Desiatkové | Hex |
|---|---|---|---|
& | & | & | & |
< | < | < | < |
> | > | > | > |
" | " | " | " |
' | ' | ' | ' |
(nezalomiteľná medzera) | |   |   |
© | © | © | © |
® | ® | ® | ® |
™ | ™ | ™ | ™ |
€ | € | € | € |
£ | £ | £ | £ |
¥ | ¥ | ¥ | ¥ |
— | — | — | — |
– | – | – | – |
… | … | … | … |
« | « | « | « |
» | » | » | » |
° | ° | ° | ° |
× | × | × | × |
÷ | ÷ | ÷ | ÷ |
é | é | é | é |
π | π | π | π |
→ | → | → | → |
😀 | — | 😀 | 😀 |
Od 252 entít v HTML 4 po 2 231 v HTML5
Znaková referencia je spôsob, ako zapísať znak iba pomocou ASCII. Číselné referencie fungujú pre ľubovoľný kódový bod Unicode, v desiatkovom (é) alebo šestnástkovom zápise (é). Pomenované referencie sa pamätajú ľahšie: HTML 4 ich definovalo 252 a pokrývajú písmená Latin-1 ako é, grécke písmená, matematické symboly a typografické znaky ako — a …. Kuriózne je, že medzi nimi nebolo '; pochádza z XML a platným HTML sa stalo až s HTML5.
HTML5 rozšírilo zoznam na 2 231 pomenovaných znakových referencií a pohltilo sadu entít MathML, takže názvy ako ✓, ★ a ≂̸ dnes fungujú vo všetkých aktuálnych prehliadačoch. Do tohto počtu patria aj staršie zápisy bez bodkočiarky na konci, napríklad & a ©, ktoré parsery z dôvodu kompatibility stále akceptujú, ale nemali by ste ich písať. Kodér tu vytvára široko podporované názvy z HTML 4 plus ' a pre všetko ostatné použije číselnú referenciu; dekodér odovzdá text vlastnému parseru prehliadača, takže rozumie všetkým 2 231 názvom.
Čo kódovať a kedy samotné kódovanie nestačí
Only & < > " ' je nastavenie na bežnú prácu: escapuje päť znakov, ktoré môžu ukončiť textový uzol alebo atribút v úvodzovkách, čo stačí na zobrazenie ukážky kódu na stránke alebo na bezpečné vloženie textu používateľa do HTML. Also every non-ASCII character premení na referencie aj é, € a emoji, pre zriedkavé kanály, ktoré neprenesú UTF-8, napríklad niektoré staršie e-mailové šablóny alebo systémy, ktoré kazia kódovanie. Named, Decimal a Hex menia iba spôsob zápisu referencie; všetky tri sa dekódujú na ten istý znak. Stránka uložená v UTF-8 nepotrebuje entity pre písmená s diakritikou.
Escapovanie chráni iba kontext HTML a nič iné. Text vložený do bloku skriptu, do inline obsluhy udalosti ako onclick, do atribútu style alebo do href, ktorý môže začínať javascript:, vyžaduje iný postup a samotné kódovanie entít tam nezabráni cross-site scriptingu. Frameworky ako React escapujú text predvolene, takže bežnejšou chybou v moderných aplikáciách je dvojité escapovanie: používatelia vidia & namiesto ampersandu. Ak chcete značky odstrániť úplne, preveďte kód pomocou HTML na TXT; na escapovanie v URL použite Kódovanie a dekódovanie URL.
Často kladené otázky
- Ktoré znaky treba v HTML kódovať ako entity?
- V texte sú nevyhnutné & a <, znak > sa escapuje zo zvyku. V hodnote atribútu escapujte aj úvodzovku, ktorá ju ohraničuje. Escapovanie všetkých piatich znakov pokryje oba prípady.
- Aký je rozdiel medzi a bežnou medzerou?
je nezlomiteľná medzera, U+00A0. Vyzerá ako medzera, ale na tomto mieste zabraňuje zalomeniu riadka a na rozdiel od bežných medzier v HTML sa viaceré za sebou nezlúčia.- Prečo sa na mojej stránke zobrazuje & namiesto ampersandu?
- Text bol escapovaný dvakrát: raz vo vašich dátach a znova šablónou alebo frameworkom. Ukladajte surový text a nechajte escapovanie na jednu vrstvu, zvyčajne šablónu, pri výstupe.
- Je bezpečné dekódovať tu HTML z nedôveryhodného zdroja?
- Áno. Dekodér spracúva vstup ako obyčajný textový obsah, takže sa nevytvárajú značky, nespúšťajú sa skripty a nenačítavajú obrázky. Na znaky sa premenia iba referencie entít.
- Sú lepšie pomenované, alebo číselné entity?
- Pomenované sa čítajú ľahšie, číselné fungujú pre každý znak a v každom parseri XML. V XML bez DTD sú preddefinované iba
&,<,>,"a'.