HTML 实体编码器
为 HTML 转义文本:将 & < > " ' 转为实体,也可将所有非 ASCII 字符转为命名、十进制或十六进制实体。避免标记被破坏,本地运行。
44 个字符 · 49 字节(UTF-8)
0 个字符 · 0 字节(UTF-8)
完全在浏览器中运行,您的数据不会被上传。
什么是 HTML 编码?
对文本进行转义,使其可以放入 HTML 中而不会被当作标记解析。默认会编码五个关键字符 & < > " ';你也可以把每个非 ASCII 字符转换为实体,使用 é 这样的 HTML 4 命名实体或数字引用。
如何使用 HTML 编码
- 在输入中键入或粘贴文本或 HTML。
- 选择要编码的字符:仅
& < > " ',或同时包含所有非 ASCII 字符。 - 选择实体格式:命名、十进制或十六进制。
- 从输出中复制转义后的文本。
示例
<a href="x">Tom & Jerry's</a>
<a href="x">Tom & Jerry's</a>
何时使用 HTML 编码
在向 HTML、类 XML 模板或展示代码的文档中插入用户提供的文字或字面文本时使用。只有无法存储 UTF-8 的系统才需要编码所有非 ASCII 字符。请注意,针对 HTML 文本的转义不足以用于 <script>、style 或 URL 属性内部——这些位置需要符合各自上下文的转义。
HTML 编码 的工作原理
文本按码位逐个处理。&、<、>、" 和 ' 始终会被替换(' 变为 ',在 HTML 4 和 5 中均可使用)。在非 ASCII 模式下,每个高于 U+007E 的字符会替换为其 HTML 4 实体名(如果存在),否则替换为数字引用;表情符号会变成一个引用,如 😀,而不是两个代理项。
常见用例
- 在网页上展示 HTML 代码示例
- 在插入标记之前转义用户输入
- 安全地把文本放入 HTML 属性
- 为旧版邮件模板生成仅含 ASCII 的 HTML
安全提示
转义取决于上下文:本工具的输出在 HTML 元素内容和带引号的属性中是安全的,但在 <script> 块或不带引号的属性中则不安全。
常见问题
为什么用 ' 而不是 '?
' 在 HTML 4 中没有定义,一些较旧的解析器无法识别。' 在任何地方都能用。
我需要对 é 或表情符号编码吗?
如果页面以 UTF-8 提供(如今已是标准做法),就不需要。仅在面向纯 ASCII 系统时才使用非 ASCII 选项。
这能防止 XSS 吗?
对 HTML 文本和带引号的属性值来说,这是正确的转义。其他上下文(JavaScript、CSS、URL)需要各自的转义,使用带自动转义的框架是更安全的选择。