普通 UTF-8 网页需要把所有中文都转成 HTML 实体吗?
不需要。页面和响应正确使用 UTF-8 时,中文可以直接保留,源码也更容易阅读。通常只需转义会改变 HTML 结构的 &、<、> 和属性引号。完整 HTML5、十进制或十六进制实体更适合旧系统、纯 ASCII 传输或明确要求数字码点的场景。
开发 / 文本编码
正确处理 HTML5 命名实体、数字实体和 XML 实体,不再只替换五个符号。转换全部在当前浏览器完成,可复制、反向检查或下载文本。
| 字符 | 命名实体 | 十进制 | 十六进制 | 用途 |
|---|---|---|---|---|
| & | & | & | & | 实体起始符 |
| < | < | < | < | 标签起始符 |
| > | > | > | > | 标签结束符 |
| " | " | " | " | 双引号属性 |
| © | © | © | © | 版权符号 |
RELATED TOOLS
USE & REVIEW
不需要。页面和响应正确使用 UTF-8 时,中文可以直接保留,源码也更容易阅读。通常只需转义会改变 HTML 结构的 &、<、> 和属性引号。完整 HTML5、十进制或十六进制实体更适合旧系统、纯 ASCII 传输或明确要求数字码点的场景。
HTML 实体用于 HTML 文本和属性语法,例如 &lt; 表示小于号;URL 编码用于链接组成部分,例如空格常写成 %20,中文会按 UTF-8 字节转成百分号序列。两者不能互换。处理查询参数和路径时应使用 URL 编码工具,不要先套一层 HTML 实体规则。
浏览器为了兼容旧网页,会在部分上下文识别没有分号的历史命名实体,因此宽松模式可能解码 &copy 之类写法。严格 HTML 模式只处理完整实体,XML 严格模式的命名集合更小。检查规范数据或模板输入时优先严格模式,恢复旧网页文本时可以尝试宽松模式并人工复核。
第一次编码把 & 变成 &amp;,第二次又把这个实体开头的 & 编码,于是得到 &amp;amp;。这叫二次编码。工具会在输入中发现完整实体时提醒;确定这些实体原本代表字符后,可以开启“先解码已有实体”,但混合了真实字面实体和待编码文本时仍应先拆分处理。
只要码点有效,它们表示同一个 Unicode 字符,浏览器显示结果没有本质区别。例如 © 可以写成 &#169; 或 &#xA9;。十进制常见于数据导出,十六进制更容易和 Unicode 码点对照;两种写法都应带分号,并避免无效码点和孤立代理值。
这个工具使用字符实体解析库把引用还原成普通文本,并把结果放在只读 textarea 中,不会把输出作为 HTML 插入页面或执行脚本。但如果你随后把解码结果不经清理地写入 innerHTML、CMS 模板或邮件正文,仍可能产生 XSS 风险;实体解码不等于内容消毒。