把用户内容安全地嵌入模板
用户留言、表单回复、搜索词 — 任何来自外部、会被放进 <p>、<li> 或属性的文字。在字符串拼接进 HTML 之前先用 Minimal 模式编码,你就不会遇到坏掉的标记与最基本的 XSS。
把 `& < > " '` 转义为安全的 HTML 实体,或把实体编码的文字解码回原文。四种编码层级 — Minimal、Named、Numeric、All non-ASCII。UTF-8 + emoji + CJK 全支持,在浏览器内运算。
默认用 Minimal — 只转义 & < > " ' 这 5 个会破坏 HTML 正文 / 属性语境的字符。所有现代模板引擎也是这样做。如果你要把版权符号、不换行空格、箭头等用可读的命名实体呈现(© 而非 ©),选 Named。当 HTML 要送进可能不识别命名实体的 pipeline 时,选 Numeric。要丢到严格纯 ASCII 的系统(老式 email、烂 API)时,选 All non-ASCII。
' 在 XML 与 HTML5 是合法的,但 不在 HTML 4.01 — 较旧的浏览器会把它当成字面字符串显示为 '。数字引用 ' 在所有环境都可运作。解码器为兼容性接受 ' 作为输入。
把用户内容转义为模板可用、把实体编码的数据解码回来 — 加上几个让你真正用得开心的小细节。
Minimal 只转义 5 个 HTML 不安全字符(& < > " ')— 一般用户内容套模板的最安全默认值。Named 在 HTML5 提供命名实体时使用可读的 © / / ♥。Numeric 把每个非 ASCII codepoint 编码成 &#NN;。All non-ASCII 把所有可打印 ASCII 范围外的 codepoint 都编码,适合老式 / 纯 ASCII pipeline。
解码器支持命名实体(©)、十进制(©)、十六进制(©)。Surrogate-pair codepoint(emoji、古文字)经 UTF-16 正确 round-trip。
输出在每次按键后实时更新 — 不需要按 Encode / Decode 按钮。一键切换方向;Swap 按钮把输出搬回输入,让你串接多次转换。
每个 Unicode codepoint 都能 round-trip:中文、العربية、русский、हिंदी、🎉、Þorgeir。编码器以 codepoint 为单位遍历(非 charAt),surrogate pair 不会被切坏。
你的文字留在你的设备上。编码器、解码器、命名实体查找表全部以 JavaScript 在本地运行。打开 DevTools → Network 即可验证没有任何对外请求。
纯 JavaScript,无框架运行时。冷启动 gzip 后不到 25 KB。100 KB HTML 文档 5 毫秒内完成编码。
从原始文字到实体安全输出,四个步骤。
把纯文本或 HTML 丢到 Input 面板。任何内容都行 — 用户留言、博客文章、emoji、中日韩、RTL 文字。编码器以 codepoint 遍历,多字节序列不会被切坏。
Direction 设为 Encode(文字 → 实体)或 Decode(实体 → 文字)。Encode 时选择模式:Minimal 适合套模板、Named 用可读实体、Numeric 把非 ASCII 编成 &#NN;、All non-ASCII 输出纯 ASCII。
输出在每次按键后实时更新。切换下拉菜单实时对比不同模式。Swap 把输出搬回输入 — 适合 round-trip 验证(编码后再解码 = 原文)。
用复制图标把结果发到剪贴板,或用下载图标存为 output.encode.html / output.decode.txt。体积差(字符 / bytes 进 → 出)让你看清楚编码让文字膨胀或缩小多少。
四种常见场景 — 在这些情况下,浏览器内隐私优先工具比把代码贴到随便的在线 encoder 安全多了。
用户留言、表单回复、搜索词 — 任何来自外部、会被放进 <p>、<li> 或属性的文字。在字符串拼接进 HTML 之前先用 Minimal 模式编码,你就不会遇到坏掉的标记与最基本的 XSS。
有些 API 返回的是已经实体编码过的字符串(RSS feed、某些 CMS 导出、爬到的 HTML)。粘贴进来、按 Decode、得到原始 Unicode。解码器支持命名、十进制、十六进制实体,包括 surrogate pair。
<title>、<meta name="description">、<meta property="og:title"> — 这些遇到特殊字符都需要实体转义。把标题编码一次,粘贴到三个地方。
内部 CMS 内容、客户数据、NDA 模板 — 任何不能粘贴到云端 encoder 的东西。浏览器内工具让每一个字节都留在你的笔记本电脑上。打开 DevTools → Network 验证没有东西外泄。
你的文字永远不会离开你的设备。打开 DevTools → Network,编码或解码过程中没有任何对外请求。
为 HTML 转义、实体表、安全模板精选的实用文章。
默认用 Minimal — 只转义 & < > " ' 这 5 个会破坏 HTML 正文 / 属性语境的字符。所有现代模板引擎也是这样做。如果你要把版权符号、不换行空格、箭头等用可读的命名实体呈现(© 而非 ©),选 Named。当 HTML 要送进可能不识别命名实体的 pipeline 时,选 Numeric。要丢到严格纯 ASCII 的系统(老式 email、烂 API)时,选 All non-ASCII。
' 在 XML 与 HTML5 是合法的,但 不在 HTML 4.01 — 较旧的浏览器会把它当成字面字符串显示为 '。数字引用 ' 在所有环境都可运作。解码器为兼容性接受 ' 作为输入。
不会。编码器以 codepoint 遍历(非 UTF-16 code unit),所以 🎉(U+1F389)会被编成 🎉 并能正确 round-trip。中文也一样(中文 → numeric 模式下变成 中文)。
对 HTML 正文与属性 — 用 Minimal 模式即可。对 URL 语境(href="...")还需要 URL 编码。对 inline JavaScript 或 CSS,HTML 与 URL 编码都不够 — 请使用懂这些语境的模板引擎。绝对不要把未转义的用户输入贴进 <script> 块。
不会。编码器、解码器、命名实体查找表全部以 JavaScript 在你的设备上运行。打开 DevTools → Network 即可验证编码 / 解码过程中没有任何对外请求。粘贴机密、客户数据、内部模板进来都安全 — 没有任何字节离开你的笔记本电脑。