HTML 实体编码 / 解码器
转义文本以便在 HTML 中安全使用,将特殊字符转换为数字实体,或将实体解码回纯文本。
常用 HTML 实体
| 字符 | 实体 | 数字形式 | 说明 |
|---|---|---|---|
| & | & | & | & 符号 |
| < | < | < | 小于号 |
| > | > | > | 大于号 |
| " | " | " | 双引号 |
| ' | ' | ' | 撇号(单引号) |
| ⍽ | |   | 不换行空格 |
| © | © | © | 版权符号 |
| ® | ® | ® | 注册商标符号 |
| ™ | ™ | ™ | 商标符号 |
| € | € | € | 欧元符号 |
| £ | £ | £ | 英镑符号 |
| ¥ | ¥ | ¥ | 日元符号 |
| ¢ | ¢ | ¢ | 分符号 |
| § | § | § | 章节符号 |
| ° | ° | ° | 度数符号 |
| ± | ± | ± | 正负号 |
| × | × | × | 乘号 |
| ÷ | ÷ | ÷ | 除号 |
| … | … | … | 水平省略号 |
| – | – | – | 短破折号(En dash) |
| — | — | — | 长破折号(Em dash) |
| « | « | « | 左书名号(左尖引号) |
| » | » | » | 右书名号(右尖引号) |
| · | · | · | 间隔点 |
关于HTML 实体编码 / 解码器
HTML 将几个字符用于自身语法,因此当 & 符号、小于号、大于号和引号作为文本出现时,必须写成 &、< 和 " 等实体。在页面上显示用户输入时,转义这些字符也是防御跨站脚本攻击(XSS)的第一道防线。选择“特殊字符”仅转义这五个字符,或选择“所有非 ASCII”同时将带重音的字母、符号和表情符号转换为 é 这样的数字实体——适用于旧系统、电子邮件模板以及编码未知的文件。解码模式则相反:它会像浏览器一样,将命名实体、十进制实体和十六进制实体还原为可读字符。参考表列出了最常用的实体。所有处理都在您的浏览器中完成。
FAQ
' 和 ' 有什么区别?
两者都表示撇号。' 在 HTML5 和 XML 中有定义,但在旧版 HTML 4 中没有,因此数字形式 ' 是最稳妥的选择,在任何地方都能使用。
转义 HTML 足以防止 XSS 吗?
转义这五个特殊字符可以保护放在标签之间和带引号属性中的文本。URL、JavaScript 和 CSS 上下文需要各自的编码方式,因此还应使用默认转义的模板引擎以及内容安全策略(Content Security Policy)。
应该使用命名实体还是数字实体?
数字实体适用于所有 Unicode 字符和所有解析器。命名实体更易阅读,但只有部分字符才有。对于 UTF-8 页面,通常只需转义特殊字符即可。