HTML 编解码器
编码或解码 HTML 实体。快速、私密、易于使用。
编码或解码 HTML 实体。快速、私密、易于使用。
HTML 编码会把浏览器本应视为标记的字符转换成实体引用,让浏览器把它们按字面显示出来。如果你把 <strong>hello</strong> 当纯文本粘进页面,浏览器看到的是真的加粗标签;先编码,浏览器才会显示标签本身。这个工具支持双向编码和解码,提供用于日常转义的安全模式,以及把每个非 ASCII 字符转成数字引用的完整模式。它面向开发者、技术写作者,以及任何需要把代码当文本展示、或清理被转义过头文本的人。
| 输入 | 安全模式 | 完整模式 |
|---|---|---|
<p>café</p> | <p>café</p> | <p>café</p> |
He said "hi" | He said "hi" | He said "hi" |
€100 | €100 | €100 |
A & B | A & B | A & B |
安全模式恰好替换 &、<、>、" 和 '(单引号变成 ')。完整模式做同样的事,然后把其余所有码点小于 U+0020 或大于 U+007E 的字符替换成十进制数字引用。从空格到 ~ 的可打印 ASCII 原样保留。当输出必须能在未声明 UTF-8 的页面或系统上存活、当你要产出纯 ASCII 文件、或当不可见控制字符需要变得可见时,完整模式是正确的选择。安全模式让人眼保持可读,当目标环境本来就是 UTF-8 时,通常这才是你想要的。
HTML 提供两种方式书写你无法或不想直接键入的字符。像 & 或 < 这样的命名实体带有人类可读的名字,容易辨认。数字字符引用则写出该字符的 Unicode 码点,可以是十进制(é)或十六进制(é)。对浏览器来说两种形式表示同一个字符。完整模式始终输出十进制引用,因为它们紧凑、无歧义,而且十进制数字本身就是可读的 ASCII。知道码点常常是手工解码陌生引用最快的方法:€ 是十进制 8364,也就是 U+20AC,欧元符号。
<div class="box">Hi</div> 都会得到 <div class="box">Hi</div>。除了那五个被转义的字符,其余全是可打印 ASCII,所以安全和完整模式结果一致。Résumé & Co.,安全模式得到 Résumé & Co.,完整模式得到 Résumé & Co.,因为 é 是 U+00E9,十进制 233。	,版权符号(U+00A9)变成 ©,两者都会在输出中显形。Hello 得到 Hello,解码 <b>bold</b> 得到 <b>bold</b>。解码器识别六个命名实体:&、<、>、"、' 和 。它也处理十进制引用如 é,以及十六进制引用如 é 或 é。其他一律原样透传,所以 ©、€ 和格式不完整的片段都会保持原样。一个值得记住的细节: 解码成普通空格,而不是不换行空格,因此解码后的段落可能和原页面重排得不一样。往返转换并不总是无损的。
< 再编码一次会得到 &lt;,浏览器显示为字面文本 <。如果不确定某个字符串是否已被转义,先解码。© 和 € 会让你意外。转义这五个字符能防止文本被当作标记读取,但它不是净化器。它不校验输入、不移除不需要的标签,也无法拆除 javascript: 这类危险 URL。如果你需要渲染不可信 HTML 而不是把它当文本显示,请把转义和专门的净化库配合使用。经验法则是:展示代码或用户文本时用转义,必须真正插入标记时用净化。
技术写作者用它来在博客和文档里展示 HTML、XML、SVG 样例。开发者在渲染用户提交的文本前先做转义。模板作者保护插入 HTML 邮件里的动态值。还有任何人需要解码从遗留系统或过度转义的 CMS 里复制来的、满是实体的乱码文本。
安全模式只替换五个字符:与号、小于号、大于号、双引号和单引号。完整模式先转义同样这五个,再把其余所有小于 U+0020 或大于 U+007E 的字符转换成十进制数字引用,因此结果是纯 ASCII。
这是预期行为。完整模式把每个非 ASCII 字符表示成它的十进制 Unicode 码点,所以一个重音字母或货币符号会变成类似 é 的形式。这让文本在未声明 UTF-8 字符集的页面或系统上仍能正确显示。
不会。这个解码器把 映射成普通空格(U+0020),而不是不换行空格(U+00A0)。先解码再重新编码,并不会还原出原来的实体。
< 里的与号本身也是安全模式要转义的字符,所以输入 < 会变成 &lt;。这就是重复编码:浏览器会显示字面文本 <,而不是 < 字符。
可以。完整模式按 Unicode 码点遍历字符串,所以一个 emoji 会作为单条数字引用(例如 😀)输出,而不会被拆成两个代理项。
不够。转义这五个危险字符能阻止文本被当作标记解析,但它不校验输入、不剥离标签,也无法解除 javascript: 这类危险 URL。要渲染不可信标记,请使用专门的净化库。
由 HandyTools Hub 团队审校 · 最后更新