首页 > 精选知识 >

问 html 转义字符 特殊字符编码用法详解

2026-11-07 18:56:22
最佳答案

答

html 转义字符也叫 html 实体字符,核心作用就是把 html 里面本身拥有特殊含义的符号,转换成浏览器不会当成标签解析的文本形式,让这些符号可以正常显示在网页页面上。html 本身是标记语言,尖括号引号等符号本身是用来写标签的,如果直接在页面正文写尖括号,浏览器会误以为这是标签代码,直接解析,不会把它当成普通文字展示,这个时候就必须使用 html 转义字符。除了尖括号之外,空格版权符号注册商标符号等特殊符号,也可以使用 html 转义字符来输出,它有两种书写形式,一种是名称实体,一种是数字实体,两种写法最终渲染出来的显示效果是一样的。很多新手写教程页面,想要展示 html 源码的时候,最容易踩这个坑,源码里面的标签直接被浏览器解析,页面看不到代码,解决办法就是全部替换成 html 转义字符。

为什么需要 html 转义字符

html 解析器读取页面代码的时候,会优先识别标记符号,小于号和大于号是标签的标志性符号,浏览器看到之后就会尝试解析成 html 标签。如果业务需求只是单纯展示这个符号,并不是要创建标签,就会出现冲突,html 转义字符就是解决这个解析冲突。另外还有部分字符属于保留字符,在文档里面直接书写会出现解析歧义,使用转义字符之后,浏览器识别到实体编码,就知道这只是普通文本,不会进行标记解析。

常用 html 转义字符对照表

原始符号名称实体数字实体说明
<lt<小于号
>gt>大于号
&amp&和号,这个符号是实体编码开头标记,必须转义
"quot"双引号
'apos'单引号
空格nbsp不换行空格,多个空格不会被浏览器合并
©copy©版权符号
®reg®注册商标符号
×times×乘号
÷divide÷除号

两种书写格式说明

名称实体格式,是 amp 后面跟上分号,也就是以名称加末尾分号组成,可读性更好,写代码推荐这种写法。

数字实体格式,是井号加上十进制编码,或者井号 x 加上十六进制编码,后面同样带分号,这种写法适合批量生成,不需要记忆实体名称。

重点提醒,所有 html 转义字符结尾的分号不能漏掉,漏掉分号浏览器有可能识别失败,无法正确转义成目标符号。

典型使用场景

1 网页里面展示 html 源代码,比如教程文档,需要把标签尖括号全部转为 html 转义字符,防止浏览器直接渲染标签

2 文本内容里面包含和号,因为和号本身是实体编码起始字符,如果不转义,浏览器会尝试识别成实体,造成显示异常

3 输出版权商标这类键盘不容易输入的特殊符号,直接使用 html 转义字符输出

4 属性值内部包含引号,在标签属性里面如果需要写双引号,可以使用 quot 转义,避免和属性外层引号冲突

前端 js 自动转义相关方法

如果需要批量把普通字符串转换成 html 转义字符,前端可以利用 dom 特性自动转换,不需要手动逐个替换,这个在动态渲染用户输入内容的时候非常重要,同时这个操作也可以防范基础的 xss 风险,把用户输入里面的尖括号转义,防止恶意标签被浏览器执行。

对应的反向操作叫做解码,也就是把 html 转义字符还原成原始符号,比如拿到后台返回的带实体编码文本,需要解码之后再展示原始内容。

容易混淆知识点区分

html 转义字符和 url 百分号编码不是同一个东西,html 转义字符是针对网页文档解析,作用是防止标签解析冲突,url 编码是针对 url 传输,解决特殊字符网络传输问题,二者编码格式用途完全不一样,不要混为一谈。

还有一个高频误区,nbsp 这个空格和普通空格不一样,nbsp 属于不间断空格,浏览器不会自动合并多个 nbsp,普通空格在 html 里面连续多个会被压缩成单个空格,这是很多排版的时候经常用到的特性。

常见踩坑点

1 忘记末尾分号,html 转义字符识别失败

2 混淆 html 转义字符和 url 编码,错误套用编码

3 动态拼接 html 的时候,没有对用户输入内容做 html 转义字符处理,引发 xss 安全隐患

4 转义之后又重复转义,出现双重编码,页面显示出 amp lt 这类实体代码本身

【常见问题】

问题 1 html 转义字符主要解决什么问题

回答 1 html 转义字符主要解决特殊符号被浏览器当成 html 标签解析的问题,让尖括号这类符号可以作为普通文字正常显示。

问题 2 html 转义字符结尾的分号可以省略吗

回答 2 html 转义字符结尾的分号不建议省略,绝大多数浏览器要求完整带分号,缺少分号容易导致 html 转义字符解析失败。

问题 3 html 转义字符和 url 编码是一样的吗

回答 3 html 转义字符和 url 编码不一样,html 转义字符用于网页文档防标签解析,url 编码用于链接传输,二者属于两套独立编码体系。

问题 4 html 转义字符可以用来防止 xss 吗

回答 4 html 转义字符可以对用户输入的尖括号引号进行转义,是基础 xss 防护手段之一,动态渲染内容时使用 html 转义字符可以降低安全风险。

【免责申明】

本文内容基于 html 标准规范整理,仅用于 html 转义字符入门学习,不同浏览器对部分实体字符兼容细节存在差异,正式项目请参考 W3C 官方规范,本文不替代官方标准文档。