HTML Entity Encoder at Decoder

I-escape ang text para ligtas itong ilagay sa loob ng HTML, o gawing nababasang character muli ang mga entity gaya ng & at €.

Tumatakbo sa browser moWalang sign-upWalang ina-upload

Na-encode

Paano gamitin ang HTML Entity Encoder / Decoder

  1. Piliin ang I-encode para i-escape ang text, o I-decode para gawing character muli ang mga entity.
  2. Kapag nag-e-encode, piliin kung aling mga character ang ie-escape: ang HTML-special lang, pati lahat ng non-ASCII, o lahat maliban sa mga letra at numero.
  3. Pumili ng named entity (é), decimal (é) o hex (é).
  4. Kopyahin ang resulta. Kapag nagde-decode, nakalista ang mga hindi kilalang entity para makita mo ang mga typo.

Bakit kailangang i-escape ang HTML?

May espesyal na kahulugan ang limang character sa HTML: sinisimulan ng & ang entity, nililimitahan ng < at > ang mga tag, at isinasara ng " at ' ang attribute value. Kapag ipinasok sa page nang hindi naka-escape ang text mula sa user na may mga ito, puwede nitong sirain ang layout o, mas malala, mag-inject ng script (cross-site scripting, XSS). Ginagawa ng escaping ang mga ito na &amp;, &lt;, &gt;, &quot; at &#x27;, na ipinapakita ng browser bilang text.

Named, decimal at hex na entity

Maisusulat ang bawat Unicode character bilang numeric reference: decimal na &#8364; o hex na &#x20AC; para sa €. Marami ring karaniwang character ang may nababasang pangalan, gaya ng &euro;, &copy; o &nbsp;. Gumagana kahit saan ang numeric reference, kasama ang XML, na limang named entity lang ang dinedepina. Mas madaling basahin sa source code ang named entity.

Kailangan ko bang i-encode ang mga non-ASCII character?

Hindi, kung naka-serve bilang UTF-8 ang page mo, gaya ng halos lahat ng modernong site (<meta charset="utf-8">). Puwedeng isulat nang diretso ang mga character gaya ng é, ü o 日本. Kapaki-pakinabang ang pag-encode sa mga ito para sa mga legacy system, email template, o kapag sinisira ng isang pipeline ang non-ASCII na text.

Nakadepende sa context ang escaping

Pinoprotektahan ng HTML entity escaping ang text na inilalagay sa element content at naka-quote na attribute. Hindi ito sapat para sa mga value sa loob ng <script> block, inline event handler, CSS o URL, na may kanya-kanyang encoding. Mas mainam gamitin ang auto-escaping ng iyong framework (React, Vue, Jinja, Blade) kaysa mano-manong pagbuo ng string.

Mga madalas itanong

Aling mga character ang dapat i-escape sa HTML?
Sa text content, mahalaga ang & at <. Sa attribute value, i-escape din ang quote character na ginamit mo. Ang pag-escape sa lahat ng lima (& < > " ') ang ligtas na default.
Ano ang &amp;nbsp;?
Isang non-breaking space (U+00A0). Mukha itong space pero pinipigilan nito ang line break at hindi ito pinagsasama sa mga katabing space.
Bakit nagde-decode sa ©2024 ang &amp;copy2024?
Para sa backward compatibility, nagde-decode ang mga browser ng ilang legacy entity, gaya ng &copy, &amp at &lt, kahit walang semicolon sa dulo. Ganito rin ang patakaran ng decoder na ito. Laging isulat ang semicolon sa sarili mong HTML.
&amp;apos; ba o &amp;#39; ang apostrophe?
Valid ang &apos; sa HTML5 at XML pero hindi sa HTML 4, kaya ang numeric na &#39; o &#x27; ang pinaka-compatible na pagpipilian at siyang inilalabas ng encoder na ito.

Mga kaugnay na tool