🏷️
免费 HTML 编解码器
将特殊字符编码为 HTML 实体,或将实体解码回纯文本。即时,在浏览器中完成。
加载后可离线使用
输出:
示例:
纯文本 / HTML
已编码 HTML
输出将显示在此处...
常用 HTML 实体参考
&&
<<
>>
""
''
·
©©
®®
™™
€€
——
……
常见用途
- 为RSS源编码内容为RSS源项描述编码HTML内容 — RSS 2.0标准所需。
- 清理用户输入以获得HTML输出在将用户提供的字符串插入HTML之前对其进行编码 — 防止XSS注入攻击。
- HTML电子邮件的特殊字符编码将&、<、>和©等字符编码为HTML实体,以便在所有电子邮件客户端中正确呈现。
- 网页显示的用户内容编码在HTML页面中呈现前对用户生成的内容进行编码,防止XSS攻击。
- XML内容编码为XML文件、RSS源、网站地图和SOAP负载编码特殊字符。
工作原理
这里的 HTML 编码和解码完全在你的浏览器中运行,使用手写的正则替换和硬编码的命名实体查找表——没有第三方编码库,没有服务器往返。对于不常见的命名实体(如 á 或 “)的解码,工具会交给浏览器自身的 HTML 解析器作为零成本的后备方案。
- 1正则扫描需要替换的字符编码时,会对你的输入运行两个支持 Unicode 的正则之一:一个针对约 25 个常见 HTML 特殊字符和特殊符号的模式,或一个捕获 U+007F 以上所有码点的更宽泛模式。每个匹配都逐字符拦截处理。
- 2查找表或 codePointAt() 生成实体输出命名实体时,匹配的字符在硬编码表中查找(例如 & → &,© → ©)。输出十进制或十六进制时,String.codePointAt() 获取 Unicode 码点并格式化为 &#NNN; 或 &#xNNN;——由于正则使用了 Unicode 'u' 标志,代理对也能正确处理。
- 3单次正则遍历将实体解码回字符解码时,一次正则遍历识别所有实体记号(&、A、A 等),并将每个交给相应的处理程序:十六进制用 parseInt(基数 16),十进制用 Number(),命名实体反向查找,或者——对于不在硬编码表中的实体——使用 textarea 元素,由浏览器原生解析其 innerHTML,从浏览器内置的实体表返回正确字符。
- 4结果即时显示;通过 Clipboard API 复制到剪贴板每次按键时,输出都会通过 React useMemo 同步重新计算。复制使用 navigator.clipboard.writeText()——现代异步 Clipboard API——并在受限环境中静默捕获错误。