HTML 实体编码与解码
编码五种特殊字符,或单层解码命名与数字实体
先贴 HTML 或实体编码文本,自动识别后直接转换;场景说明和修复提示可在高级模式查看。
—
完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。
工具说明
编码模式把 &、<、>、双引号和单引号转换为 HTML 实体。解码模式处理 HTML 命名实体以及十进制、十六进制字符引用,每次只解一层,不会递归展开嵌套内容。自动模式在解码会改变输入时选择解码;需要明确目标上下文时,请手动选择模式。高级模式同时展示两种形式,并提供基础文字、列表和表格的隔离预览。预览会移除链接、图片、样式、脚本及全部元素属性,因此不等同于源内容的完整渲染。本工具进行文本转换,不是生产 HTML、JavaScript、CSS 或 URL 的通用净化器。处理在本地完成,不保存输入草稿。
场景配方
检查一层实体编码
目标:避免无意间把数据解码两次。
- 选择解码模式。
- 输入 &lt; © 😀 并转换。
- 对照原始输出与隔离的基础排版预览。
结果:结果为 < © 😀,再次解码会改变第一项。
失败门诊(高频踩坑)
解码字符串仍可能是不可信标记
原因:实体解码只还原字符,不校验目标上下文。
修复:将输出作为文字保留;需要在别处渲染时使用对应的净化器。
生产可用片段
计算示例
text
输入:&lt; © 😀
输出:< © 😀常见问题
会编码哪些字符?
编码器把 & 转为 &、< 转为 <、> 转为 >、双引号转为 "、单引号转为 '。
支持哪些实体解码?
支持 HTML 命名实体及十进制、十六进制字符引用。例如 © A 😀 变为 © A 😀;无效引用遵循 HTML 实体解码库的替换规则。
会一直解码到不含实体吗?
不会。&lt; 一次转换后是 <。只有确认数据确实包含另一层编码时才再次解码。
预览等于完整的解码页面吗?
不等于。它是移除了主动资源及属性的沙箱基础排版视图;复制的仍然是实际转换文本,不是受限预览。
实体编码能阻止所有注入问题吗?
不能。HTML 文本、HTML 属性、URL、JavaScript 和 JSON 的转义规则不同。只在适用上下文中使用输出;接受不可信 HTML 标记时,应使用专门的净化器。
继续浏览