字符实体
字符实体(Character Reference)是在 HTML 中用 &名称; 或 &#数字; 表示特殊字符的方式;适用于在源码中显示 <、& 等保留字符,或输入键盘无法直接打出的符号。
核心概念
- 为什么需要:HTML 中
<、>、&等有语法含义,直接写入可能被解析为标签或实体起始。 - 两种写法:
- 命名实体:
<→<,可读性好,常用实体应记住。 - 数字实体:
<或<(十六进制),可表示任意 Unicode 码点。
- 命名实体:
- UTF-8 优先:文档声明
<meta charset="UTF-8">后,中文、emoji 等可直接写字符,不必转义。 - 三种上下文:内容文本、属性值、URL 中规则略有不同;属性值内
"常用"。 - 连续空格:HTML 默认折叠空白;需要不换行空格时用
(不宜滥用做布局)。
实体语法
| 形式 | 示例 | 结果 |
|---|---|---|
| 命名实体 | < | < |
| 十进制数字 | < | < |
| 十六进制 | < 或 < | < |
实体必须以分号
;结尾(HTML5 对部分情况容错,但始终写分号是最佳实践)。
常用实体速查表
| 字符 | 命名实体 | 数字实体 | 说明 |
|---|---|---|---|
< | < | < | 小于号,显示标签语法必用 |
> | > | > | 大于号 |
& | & | & | 和号,必须最先转义 |
" | " | " | 双引号,属性值内常用 |
' | ' | ' | 单引号(XML/XHTML 常用) |
| 空格(不换行) | |   | 不换行空格 |
© | © | © | 版权符号 |
® | ® | ® | 注册商标 |
™ | ™ | ™ | 商标 |
€ | € | € | 欧元 |
¥ | ¥ | ¥ | 日元/人民币符号 |
£ | £ | £ | 英镑 |
¢ | ¢ | ¢ | 美分 |
§ | § | § | 章节号 |
° | ° | ° | 度 |
± | ± | ± | 正负号 |
× | × | × | 乘号 |
÷ | ÷ | ÷ | 除号 |
← | ← | ← | 左箭头 |
→ | → | → | 右箭头 |
… | … | … | 省略号 |
— | — | — | 长破折号 |
– | – | – | 短破折号 |
· | · | · | 间隔点 |
½ | ½ | ½ | 二分之一 |
¼ | ¼ | ¼ | 四分之一 |
¾ | ¾ | ¾ | 四分之三 |
示例
在正文中显示 HTML 语法
html
<p>
段落标签写作 <p>内容</p>。
<!-- < → <,> → >,避免被浏览器当成真实标签 -->
</p>
<p>
属性示例:<a href="https://example.com">链接</a>
<!-- 属性值内的双引号用 " -->
</p>版权与货币符号
html
<footer>
<p>© 2026 示例公司 — 保留所有权利</p>
<!-- © → ©,— → —(长破折号) -->
<p>价格:¥99.00(约 €12.50)</p>
<!-- ¥ → ¥,€ → € -->
</footer>nbsp 与数字实体
html
<p>10 kg</p> <!-- nbsp:数字与单位间不换行 -->
<p>版本 2.0</p>
<p>
Unicode 心形:❤️
<!-- 十六进制数字实体,可直接写 ❤️ 若 charset 为 UTF-8 -->
</p>
<!-- 错误示例:未转义 & -->
<p>Tom & Jerry</p> <!-- 浏览器可能尝试解析 & Jerry 为实体 -->
<p>Tom & Jerry</p> <!-- 正确:& → & -->常见陷阱与交叉引用
| 问题 | 说明 |
|---|---|
| 链式转义顺序 | 转义 & 必须最先,否则 &lt; 会被二次解析 |
用 做缩进 | 应使用 CSS padding/text-indent |
| 过度转义 UTF-8 中文 | UTF-8 下中文可直接写,无需 &#xxxx; |
在 <script>/<style> 内 | 规则不同;<script> 内 </script> 需特殊处理 |
URL 中的 & | 查询参数用 & 分隔,在 HTML 属性中写 & |
| 用户输入直接插入 HTML | 必须转义防 XSS;应用框架或 textContent |
相关章节:简介与文档结构 · 文本内容 · 链接 · 全局属性