Entitas HTML
Representasi tekstual sebuah karakter dalam HTML. Tiga bentuk: nama (&), desimal (&), heksadesimal (&). Penting untuk karakter yang bertentangan dengan sintaks 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 |
Istilah Terkait
Lainnya di Web & HTML
CSS properties (direction, writing-mode, unicode-bidi) controlling text layout direction. Works with Unicode …
Nama domain yang berisi karakter Unicode non-ASCII, disimpan secara internal sebagai Punycode …
ECMAScript Internationalization API providing locale-aware string comparison (Collator), number formatting (NumberFormat), date …
Parameter header HTTP yang mendeklarasikan encoding karakter dari sebuah respons (Content-Type: text/html; …
Karakter (U+FE00–U+FE0F, U+E0100–U+E01EF) yang memilih varian glyph tertentu. VS15 (U+FE0E) = tampilan …
U+2060. Karakter zero-width yang mencegah pemisahan baris. Pengganti modern U+FEFF (BOM) sebagai …
Encoding karakter non-ASCII dan karakter khusus dalam URL dengan mengganti setiap byte …
Properti CSS yang menyisipkan konten yang dihasilkan via pseudo-elemen ::before dan ::after …
Encoding yang kompatibel dengan ASCII untuk nama domain Unicode, mengonversi label yang …
HTML entity menggunakan nama yang mudah dibaca: © → ©, — → …