命名字符引用
使用人类可读名称的HTML实体:© → ©,— → —。HTML5定义了2,231个命名引用,且区分大小写。
What Are Named Character References?
Named character references (also called named HTML entities) are predefined shorthand sequences that represent specific Unicode characters in HTML. They follow the pattern &name; where name is a case-sensitive keyword registered in the HTML specification. Examples include & for the ampersand character, < for the less-than sign, and © for the copyright symbol ©.
The HTML5 specification defines 2,231 named references, covering characters across many Unicode blocks: Latin letters with diacritics, Greek and Cyrillic letters, mathematical symbols, arrows, currency signs, playing card suits, and more.
History and Design
Named references were introduced early in HTML to help authors write documents using only ASCII source files while displaying richer character sets. Before UTF-8 became universal, a document might be saved in Latin-1 but still need to display Greek letters or typographic dashes. Named entities provided a portable solution.
HTML4 borrowed many entities from ISO character sets and SGML. HTML5 dramatically expanded the list by adding all characters from MathML and a large portion of common Unicode symbols.
The Five Essential Entities
Five named references are special because they escape HTML syntax characters:
< → < (less-than, starts tags)
> → > (greater-than, ends tags)
& → & (ampersand, starts entities)
" → " (double quote, used in attributes)
' → ' (apostrophe, HTML5 only; use ' for HTML4)
Forgetting to escape these — especially & and < in user-generated content — is the root cause of many XSS vulnerabilities.
Commonly Used Named References
<!-- Typography -->
→ non-breaking space (U+00A0)
— → — (em dash, U+2014)
– → – (en dash, U+2013)
“ → " (left double quote)
” → " (right double quote)
‘ → ' (left single quote)
’ → ' (right single quote, apostrophe)
… → … (ellipsis)
<!-- Currency -->
€ → € (U+20AC)
£ → £ (U+00A3)
¥ → ¥ (U+00A5)
¢ → ¢ (U+00A2)
<!-- Math and science -->
× → × (U+00D7)
÷ → ÷ (U+00F7)
± → ± (U+00B1)
∞ → ∞ (U+221E)
∑ → ∑ (U+2211)
√ → √ (U+221A)
π → π (U+03C0)
<!-- Arrows -->
← → ← (U+2190)
→ → → (U+2192)
↑ → ↑ (U+2191)
↓ → ↓ (U+2193)
Case Sensitivity
Named references are case-sensitive. © works, © and &Copy; do not. A few names have uppercase variants that mean something different: Α is Α (Greek capital Alpha), while α is α (Greek small alpha).
Verifying Named References
// Decode a named entity by injecting into DOM
function decodeEntity(entity) {
const el = document.createElement("textarea");
el.innerHTML = entity;
return el.value;
}
decodeEntity("—"); // "—"
decodeEntity("…"); // "…"
decodeEntity("¬aref;"); // "¬aref;" — unknown entities are left as-is
When to Use Named References Today
With UTF-8 encoding, you can paste ©, —, and ∞ directly into HTML source. Named references are mainly useful for: code samples that must remain plain ASCII, generated HTML in environments where the encoding might shift, and developer readability when the intent matters ( is clearer than a bare invisible space character).
Quick Facts
| Property | Value |
|---|---|
| Total defined in HTML5 | 2,231 named references |
| Case sensitivity | Case-sensitive (& valid, & invalid) |
| Must always escape | & < > " |
| Trailing semicolon | Required in most contexts; optional legacy exceptions exist |
| XML compatibility | Only & < > " ' are predefined in XML |
| Browser behavior | Unknown named references displayed as literal text |
相关术语
网页与 HTML 中的更多内容
声明响应字符编码的HTTP头参数(Content-Type: text/html; charset=utf-8),优先级高于文档内的编码声明。
通过::before和::after伪元素使用Unicode转义插入生成内容的CSS属性:content: '\2713'可插入✓。
CSS properties (direction, writing-mode, unicode-bidi) controlling text layout direction. Works with Unicode …
HTML中字符的文本表示方式,有三种形式:命名(&)、十进制(&)、十六进制(&),对于与HTML语法冲突的字符是必需的。
ECMAScript Internationalization API providing locale-aware string comparison (Collator), number formatting (NumberFormat), date …
将Unicode域名转换为xn--前缀ASCII字符串的ASCII兼容编码,例如münchen.de → xn--mnchen-3ya.de。
CSS supports Unicode via escape sequences (\2713 for ✓), the content property …
XML版本的数字字符引用:✓或✓,XML只有5个命名实体(& < > " '),而HTML5有2,231个。
选择特定字形变体的字符(U+FE00–U+FE0F、U+E0100–U+E01EF),VS15(U+FE0E)表示文本呈现,VS16(U+FE0F)表示表情符号呈现。
包含非ASCII Unicode字符的域名,内部以Punycode(xn--...)存储,但向用户显示为Unicode,安全隐患:同形字攻击。