HTML 字符实体

在 HTML 中,某些字符有特殊含义(如 < 是标签的开始)。要显示这些字符本身,需要使用字符实体(Character Entity)。

基本实体

显示实体名实体编号说明
&nbsp;&#160;不间断空格
<&lt;&#60;小于号(less than)
>&gt;&#62;大于号(greater than)
&&amp;&#38;和号(ampersand)
"&quot;&#34;双引号
'&apos;&#39;单引号
html
<p>HTML 标签用 &lt;&gt; 包围,比如 &lt;p&gt;。</p>
<p>条件判断:x &gt; 0 &amp;&amp; y &lt; 10</p>

为何需要实体

HTML 解析器看到 < 就会认为标签开始了。如果不转义:

html
<!-- ❌ 浏览器会尝试解析 <div> 为标签 -->
<p>使用 <div> 标签来创建容器。</p>

<!-- ✅ 使用实体正确显示 -->
<p>使用 &lt;div&gt; 标签来创建容器。</p>

<script><style> 标签内部,< 不会被解析为 HTML 标签的开始,所以通常不需要转义。但 </script></style> 的出现会提前闭合标签,此时需要转义 </

常用符号实体

空格与排版

实体显示说明
&nbsp; 不间断空格(不会在此处断行)
&ensp;en 空格(半角宽)
&emsp;em 空格(全角宽)
&shy;软连字符(在此处必要时断行并显示连字符)

标点符号

实体显示说明
&copy;©版权
&reg;®注册商标
&trade;商标
&mdash;em dash(长破折号)
&ndash;en dash(短破折号)
&lsquo;左单引号
&rsquo;右单引号
&ldquo;左双引号
&rdquo;右双引号
&laquo;«左书名号
&raquo;»右书名号

数学符号

实体显示说明
&plusmn;±正负号
&times;×乘号
&divide;÷除号
&deg;°
&ne;不等于
&le;小于等于
&ge;大于等于
&infin;无穷大
&radic;根号
&sum;求和

货币符号

实体显示说明
&yen;¥人民币/日元
&euro;欧元
&pound;£英镑
&cent;¢美分

箭头

实体显示说明
&larr;左箭头
&rarr;右箭头
&uarr;上箭头
&darr;下箭头
&harr;双向箭头

实体编号

每个字符都有一个 Unicode 编号,可以用 &#编号; 格式引用:

html
<p>&#25105;&#21916;&#27426;&#20320;</p>
<!-- 输出:我喜欢你 -->

实体名比编号更好记,但并非所有字符都有实体名。对于没有常用实体名的字符(如 emoji),使用实体编号或直接输入(确保文件编码为 UTF-8)。

Unicode 与 UTF-8

现代 HTML 页面只要声明了 <meta charset="utf-8">,就可以直接输入大多数字符,无需使用实体:

html
<p>版权符号 © 和商标符号 ™ 都可以直接写</p>
<p>中文、日本語、한국어、Emoji 🎉 — 全部 OK</p>

实体主要用于以下场景:

  • 显示 <>& 等在 HTML 中有语法含义的字符
  • 确保在所有编码环境下的兼容性
  • 在不支持直接输入的场景(如某些编辑器)中表示特殊字符