Web e HTML

Entidade HTML

Uma representação textual de um caractere em HTML. Três formas: por nome (&), decimal (&) e hexadecimal (&). Essencial para caracteres que conflitam com a sintaxe HTML.

· Updated

What Are HTML Entities?

HTML entities are special text sequences that represent characters in HTML documents. They allow you to display characters that would otherwise be interpreted as HTML markup, characters outside the printable ASCII range, or characters that are difficult to type directly on a keyboard.

An HTML entity begins with an ampersand (&) and ends with a semicolon (;). Between them, you write either a named reference (like &) or a numeric reference (like A or A).

Why HTML Entities Exist

HTML uses certain characters for its own syntax. The less-than sign (<) opens tags, the greater-than sign (>) closes them, and the ampersand itself starts entity sequences. If you want to display these characters as content rather than markup, you must escape them. Without entities, writing <b> in your content would be parsed as an HTML tag, not displayed as literal text.

Beyond reserved characters, entities also cover the full Unicode range, letting you embed any character — from accented letters and currency symbols to mathematical operators and emoji — using only ASCII source code.

Named vs. Numeric Entities

Named entities use a human-readable keyword: &copy; for ©, &lt; for <, &nbsp; for a non-breaking space. HTML5 defines over 2,000 named references.

Numeric entities reference a character by its Unicode code point. Decimal: &#169; for ©. Hexadecimal: &#xA9; for the same character. Every Unicode character can be written as a numeric entity; named entities exist only for a curated subset.

Common Examples

<!-- Reserved characters -->
&lt;    <!-- < -->
&gt;    <!-- > -->
&amp;   <!-- & -->
&quot;  <!-- " -->
&apos;  <!-- ' (HTML5) -->

<!-- Common symbols -->
&copy;  <!-- © -->
&reg;   <!-- ® -->
&trade; <!-- ™ -->
&nbsp;  <!-- non-breaking space -->
&mdash; <!-- — em dash -->
&euro;  <!-- € -->

<!-- Math -->
&times; <!-- × -->
&divide; <!-- ÷ -->
&plusmn; <!-- ± -->

<!-- Numeric equivalents -->
&#65;   <!-- A (decimal) -->
&#x41;  <!-- A (hex) -->
&#x1F600; <!-- 😀 emoji -->

Using Entities in Practice

In modern web development, you should always declare your document encoding as UTF-8 in the <meta charset="UTF-8"> tag. With UTF-8, you can type most Unicode characters directly in your source file and avoid entities for non-reserved characters. Entities remain necessary only for the five reserved HTML characters and for generating characters programmatically.

Template engines like Jinja2, Django templates, and React's JSX automatically escape <, >, &, ", and ' when outputting user content — protecting against XSS injection.

import html
html.escape("<script>alert('xss')</script>")
# "&lt;script&gt;alert(&#x27;xss&#x27;)&lt;/script&gt;"

html.unescape("&copy; 2024 &mdash; All rights reserved")
# "© 2024 — All rights reserved"

Browser Parsing

Browsers decode entities during HTML parsing, before the DOM is built. The decoded text character lives in the DOM; JavaScript accessing element.textContent sees the actual character, not the entity sequence.

Quick Facts

Property Value
Syntax &name; or &#decimal; or &#xhex;
Minimum entity &lt; (4 chars)
Named entities in HTML5 2,231
Must-escape in HTML < > & (attributes also ")
UTF-8 recommendation Encode source as UTF-8; use entities only for reserved chars
JavaScript decoding element.textContent returns decoded character
Case sensitivity Named entities are case-sensitive: &Amp; is invalid

Termos Relacionados

Mais em Web e HTML