编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 名词解释 / HTML 实体

HTML 实体

HTML 实体是用一串字符来表示某个字符的转义写法,以 & 开头、以分号 ; 结尾。它主要解决两类问题:一是表示在 HTML 语法里有特殊含义的保留字符,二是输入键盘上没有或不可见的字符。实体分两种:命名实体(如 &lt; 表示 <&amp; 表示 &)和数字实体,后者用字符的 Unicode 码点,十进制写作 &#160;十六进制写作 &#xA0;,都表示不换行空格。

浏览器解析 HTML 时会把实体还原成对应字符再显示。最需要转义的是 <>&:如果把 < 直接写进正文,浏览器会当成标签的开始。所以当你要在页面上原样展示一段代码,或输出用户提交的内容时,必须先转义,否则会破坏页面结构,甚至导致 XSS 注入。常用的预定义命名实体有:

常见误区是把它和别的编码混为一谈:HTML 实体既不是 URL 编码%20 那种),也不是 JS/JSON 里的 \u 转义,三者适用场景不同、不能互换。另外并非所有字符都要转义,中文和普通符号直接写即可;在属性值里,则要额外注意转义与外层相同的那种引号。

常见问题

HTML 实体和 URL 编码是一回事吗?
不是。HTML 实体用于在 HTML 文档里表示字符,由浏览器解析还原;URL 编码(如 %20)用于在网址里表示特殊字节。两者语法和适用场景不同,不能互相替换。
是不是所有特殊字符都必须转义?
不必。正文里通常只有小于号、大于号、和号这三个必须转义;用双引号包裹的属性值里还要转义双引号。中文和大多数普通符号直接写即可,过度转义反而降低可读性。
命名实体和数字实体该用哪个?
显示效果相同,按场景选。命名实体(如表示版权号的名字)可读性好但数量有限;数字实体用 Unicode 码点,能表示任意字符,适合生僻符号。转义那几个保留字符时一般用命名实体更直观。

相关工具

相关名词