UltKit

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.

Režim
Štýl entít
Escapovať

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.

ZnakPomenovanéDesiatkovéHex
&&&&
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
"&quot;&#34;&#x22;
'&apos;&#39;&#x27;
(nezalomiteľná medzera)&nbsp;&#160;&#xA0;
©&copy;&#169;&#xA9;
®&reg;&#174;&#xAE;
™&trade;&#8482;&#x2122;
€&euro;&#8364;&#x20AC;
£&pound;&#163;&#xA3;
¥&yen;&#165;&#xA5;
—&mdash;&#8212;&#x2014;
–&ndash;&#8211;&#x2013;
…&hellip;&#8230;&#x2026;
«&laquo;&#171;&#xAB;
»&raquo;&#187;&#xBB;
°&deg;&#176;&#xB0;
×&times;&#215;&#xD7;
÷&divide;&#247;&#xF7;
é&eacute;&#233;&#xE9;
π&pi;&#960;&#x3C0;
→&rarr;&#8594;&#x2192;
😀—&#128512;&#x1F600;

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 (&#233;) alebo šestnástkovom zápise (&#xE9;). Pomenované referencie sa pamätajú ľahšie: HTML 4 ich definovalo 252 a pokrývajú písmená Latin-1 ako &eacute;, grécke písmená, matematické symboly a typografické znaky ako &mdash; a &hellip;. Kuriózne je, že medzi nimi nebolo &apos;; 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 &check;, &bigstar; a &NotEqualTilde; 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 &amp a &copy, 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 &apos; 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 &amp; 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 &nbsp; a bežnou medzerou?
&nbsp; 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 &amp; 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 &amp;, &lt;, &gt;, &quot; a &apos;.