Thực thể HTML
Biểu diễn văn bản của một ký tự trong HTML. Ba dạng: tên (&), thập phân (&), thập lục phân (&). Thiết yếu cho các ký tự xung đột với cú pháp HTML.
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: © for ©, < for <, for a non-breaking space. HTML5 defines over 2,000 named references.
Numeric entities reference a character by its Unicode code point. Decimal: © for ©. Hexadecimal: © 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 -->
< <!-- < -->
> <!-- > -->
& <!-- & -->
" <!-- " -->
' <!-- ' (HTML5) -->
<!-- Common symbols -->
© <!-- © -->
® <!-- ® -->
™ <!-- ™ -->
<!-- non-breaking space -->
— <!-- — em dash -->
€ <!-- € -->
<!-- Math -->
× <!-- × -->
÷ <!-- ÷ -->
± <!-- ± -->
<!-- Numeric equivalents -->
A <!-- A (decimal) -->
A <!-- A (hex) -->
😀 <!-- 😀 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>")
# "<script>alert('xss')</script>"
html.unescape("© 2024 — 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 | < (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 |
Thuật ngữ liên quan
Thêm trong Web & HTML
Các ký tự (U+FE00–U+FE0F, U+E0100–U+E01EF) chọn biến thể glyph cụ thể. VS15 …
Tham số header HTTP khai báo mã hóa ký tự của phản …
U+2060. Ký tự không chiều rộng ngăn chặn ngắt dòng. Thay thế …
CSS properties (direction, writing-mode, unicode-bidi) controlling text layout direction. Works with Unicode …
Kết xuất một ký tự với glyph emoji màu sắc, thường sử …
Kết xuất một ký tự với glyph văn bản một màu đơn …
Tên miền chứa ký tự Unicode không phải ASCII, được lưu trữ …
ECMAScript Internationalization API providing locale-aware string comparison (Collator), number formatting (NumberFormat), date …
Mã hóa các ký tự không phải ASCII và ký tự dành …
Mã hóa tương thích ASCII của tên miền Unicode, chuyển đổi nhãn …