HTML 字符实体
在 HTML 中,某些字符有特殊含义(如 < 是标签的开始)。要显示这些字符本身,需要使用字符实体(Character Entity)。
基本实体
| 显示 | 实体名 | 实体编号 | 说明 |
|---|---|---|---|
| |   | 不间断空格 |
< | < | < | 小于号(less than) |
> | > | > | 大于号(greater than) |
& | & | & | 和号(ampersand) |
" | " | " | 双引号 |
' | ' | ' | 单引号 |
html
<p>HTML 标签用 < 和 > 包围,比如 <p>。</p>
<p>条件判断:x > 0 && y < 10</p> 为何需要实体
HTML 解析器看到 < 就会认为标签开始了。如果不转义:
html
<!-- ❌ 浏览器会尝试解析 <div> 为标签 -->
<p>使用 <div> 标签来创建容器。</p>
<!-- ✅ 使用实体正确显示 -->
<p>使用 <div> 标签来创建容器。</p> 在 <script> 和 <style> 标签内部,< 不会被解析为 HTML 标签的开始,所以通常不需要转义。但 </script> 或 </style> 的出现会提前闭合标签,此时需要转义 </。
常用符号实体
空格与排版
| 实体 | 显示 | 说明 |
|---|---|---|
| | 不间断空格(不会在此处断行) |
  | | en 空格(半角宽) |
  | | em 空格(全角宽) |
­ | 软连字符(在此处必要时断行并显示连字符) |
标点符号
| 实体 | 显示 | 说明 |
|---|---|---|
© | © | 版权 |
® | ® | 注册商标 |
™ | ™ | 商标 |
— | — | em dash(长破折号) |
– | – | en dash(短破折号) |
‘ | ’ | 左单引号 |
’ | ’ | 右单引号 |
“ | ” | 左双引号 |
” | ” | 右双引号 |
« | « | 左书名号 |
» | » | 右书名号 |
数学符号
| 实体 | 显示 | 说明 |
|---|---|---|
± | ± | 正负号 |
× | × | 乘号 |
÷ | ÷ | 除号 |
° | ° | 度 |
≠ | ≠ | 不等于 |
≤ | ≤ | 小于等于 |
≥ | ≥ | 大于等于 |
∞ | ∞ | 无穷大 |
√ | √ | 根号 |
∑ | ∑ | 求和 |
货币符号
| 实体 | 显示 | 说明 |
|---|---|---|
¥ | ¥ | 人民币/日元 |
€ | € | 欧元 |
£ | £ | 英镑 |
¢ | ¢ | 美分 |
箭头
| 实体 | 显示 | 说明 |
|---|---|---|
← | ← | 左箭头 |
→ | → | 右箭头 |
↑ | ↑ | 上箭头 |
↓ | ↓ | 下箭头 |
↔ | ↔ | 双向箭头 |
实体编号
每个字符都有一个 Unicode 编号,可以用 &#编号; 格式引用:
html
<p>我喜欢你</p>
<!-- 输出:我喜欢你 --> 实体名比编号更好记,但并非所有字符都有实体名。对于没有常用实体名的字符(如 emoji),使用实体编号或直接输入(确保文件编码为 UTF-8)。
Unicode 与 UTF-8
现代 HTML 页面只要声明了 <meta charset="utf-8">,就可以直接输入大多数字符,无需使用实体:
html
<p>版权符号 © 和商标符号 ™ 都可以直接写</p>
<p>中文、日本語、한국어、Emoji 🎉 — 全部 OK</p> 实体主要用于以下场景:
- 显示
<、>、&等在 HTML 中有语法含义的字符 - 确保在所有编码环境下的兼容性
- 在不支持直接输入的场景(如某些编辑器)中表示特殊字符