HTML实体与字符引用
HTML实体用于显示特殊字符,避免与HTML语法冲突或显示不可见字符。
什么是HTML实体
实体编码以&开头、;结尾,表示特殊字符。
HTML
< <!-- 小于号 < -->
> <!-- 大于号 > -->
& <!-- &符号 -->
<!-- 空格 -->
必须转义的字符
HTML语法字符
HTML
<!-- 显示:小于号 < -->
<p>小于号:<</p>
<!-- 显示:大于号 > -->
<p>大于号:></p>
<!-- 显示:&符号 -->
<p>符号:&</p>
<!-- 显示:双引号 -->
<p>引号:"</p>
<!-- 显示:单引号 -->
<p>单引:'</p>
| 字符 | 实体 | 说明 |
|---|---|---|
| < | < | 小于号,防止误解析为标签 |
| > | > | 大于号 |
| & | & | &符号,防止误解析为实体 |
| " | " | 双引号,属性值内使用 |
| ' | ' | 单引号 |
使用场景
HTML
<!-- 显示代码示例 -->
<pre>
if (a < b) {
console.log("a小于b");
}
</pre>
<!-- 属性值包含引号 -->
<div title="他说"你好"">提示</div>
常用字符实体
空格与空白
HTML
<!-- 不换行空格 -->
  <!-- 半角空格(en空格) -->
  <!-- 全角空格(em空格) -->
  <!-- 窄空格 -->
数学符号
HTML
+ <!-- + 加号 -->
− <!-- - 减号 -->
× <!-- × 乘号 -->
÷ <!-- ÷ 除号 -->
= <!-- = 等号 -->
≠ <!-- ≠ 不等号 -->
< <!-- < 小于 -->
> <!-- > 大于 -->
≤ <!-- ≤ 小于等于 -->
≥ <!-- ≥ 大于等于 -->
箭头符号
HTML
← <!-- ← 左箭头 -->
→ <!-- → 右箭头 -->
↑ <!-- ↑ 上箭头 -->
↓ <!-- ↓ 下箭头 -->
↔ <!-- ↔ 双向箭头 -->
↵ <!-- ↵ 回车箭头 -->
特殊符号
HTML
© <!-- © 版权 -->
® <!-- ® 注册商标 -->
™ <!-- ™ 商标 -->
° <!-- ° 度 -->
± <!-- ± 正负号 -->
¶ <!-- ¶ 段落符号 -->
§ <!-- § 章节符号 -->
• <!-- • 项目符号 -->
货币符号
HTML
¢ <!-- ¢ 分 -->
£ <!-- £ 英镑 -->
€ <!-- € 欧元 -->
¥ <!-- ¥ 日元/人民币 -->
$ <!-- $ 美元 -->
引号符号
HTML
" <!-- " 双引号 -->
“ <!-- " 左双引号 -->
” <!-- " 右双引号 -->
‘ <!-- ' 左单引号 -->
’ <!-- ' 右单引号 -->
' <!-- ' 单引号 -->
数字引用
十进制引用
HTML
< <!-- < 小于号 -->
> <!-- > 大于号 -->
& <!-- & 符号 -->
© <!-- © 版权 -->
€ <!-- € 欧元 -->
十六进制引用
HTML
< <!-- < 小于号 -->
> <!-- > 大于号 -->
& <!-- & 符号 -->
© <!-- © 版权 -->
€ <!-- € 欧元 -->
数字引用支持任意Unicode字符,十六进制以x开头。
特殊Unicode字符
HTML
😀 <!-- 笑脸emoji -->
🎉 <!-- 庆祝emoji -->
✓ <!-- ✓ 对勾 -->
✗ <!-- ✗ 错勾 -->
♥ <!-- ♥ 心形 -->
♫ <!-- ♫ 音符 -->
常用实体速查表
基础字符
| 字符 | 实体 | 数字 |
|---|---|---|
| < | < | < |
| > | > | > |
| & | & | & |
| " | " | " |
| ' | ' | ' |
| 空格 |
常用符号
| 字符 | 实体 | 数字 |
|---|---|---|
| © | © | © |
| ® | ® | ® |
| ™ | ™ | ™ |
| € | € | € |
| ¥ | ¥ | ¥ |
| ° | ° | ° |
实体vs直接字符
使用实体场景
HTML
<!-- HTML语法字符必须转义 -->
<p>if (x < 10) ...</p>
<!-- 属性值内引号 -->
<a title="说"你好"">链接</a>
<!-- 连续空格 -->
<p>前 后</p>
直接使用字符场景
HTML
<!-- UTF-8编码可直接显示 -->
<p>版权:© 2024</p>
<p>价格:¥99.00</p>
<p>温度:25°C</p>
UTF-8编码页面可直接显示大多Unicode字符,仅语法冲突字符需转义。
JavaScript处理
编码解码
JavaScript
// 编码
const encoded = encodeURIComponent('<>&');
// 结果:%3C%3E%26
// 解码实体
function decodeEntities(str) {
const textarea = document.createElement('textarea');
textarea.innerHTML = str;
return textarea.value;
}
decodeEntities('<>&'); // "<>&"
使用建议
| 场景 | 方式 |
|---|---|
| HTML语法字符 | 必须用实体 |
| 属性值引号 | 嵌套时用实体 |
| 连续空格 | 用 |
| 特殊符号 | UTF-8可直接显示或用实体 |
| Emoji | UTF-8直接显示 |
要点总结
- < > & 必须转义为实体
- 实现连续空格
- © ® €等符号可用实体或直接显示
- 数字引用支持任意Unicode字符
- 十进制用&#数字,十六进制用&#x数字
- UTF-8编码页面可直接显示大多字符
📝 发现内容有误?点击此处直接编辑