Loading...
Loading...
免费的在线 URL 与 HTML 实体编解码工具——编码解码 URL 参数和 HTML 实体。防止 XSS 攻击和链接错误。
URL 编码(又称百分号编码)和 HTML 实体编码是 Web 开发中两种基本的编码方案。URL 编码确保特殊字符在 URL 中使用时是安全的,而 HTML 实体编码防止特殊字符被解释为 HTML 标记。
URL 编码将非字母数字字符替换为百分号(%)后跟表示该字符 UTF-8 字节值的两位十六进制数字。例如,空格变为 %20,斜杠(/)变为 %2F。保留字符如 ?、&、=、# 在 URL 中有特殊含义,当它们作为数据而非语法出现时必须被编码。
需要 URL 编码的场景:包含空格或特殊字符的查询参数、URL 中的用户生成内容、含非 ASCII 字符的文件名、以及构建带复杂参数的 API 调用。JavaScript 的 encodeURIComponent() 自动处理此操作。
HTML 实体编码防止文本内容被解释为 HTML 标签。未经编码,用户提交的文本如 <script> 将作为 JavaScript 执行(XSS 攻击)。HTML 实体使用命名表示(& 表示 &、< 表示 <、> 表示 >、" 表示 ")或数字表示(")。在 HTML 中渲染用户生成内容前始终进行编码。
常见编码陷阱:重复编码(对已编码文本再次编码会损坏数据)、动态构造 URL 时忘记编码、以及使用错误的编码函数(encodeURI 与 encodeURIComponent 的差异——前者不对所有字符编码)。此工具帮助你验证编码是否正确。
除 A-Z、a-z、0-9、-、_、.、~ 外的所有字符在 URL 查询参数中都需要编码。在 URL 路径中,/ 和 @ 也不需要编码。空格在 URL 路径中应编码为 %20(而非 +),而在查询字符串中 + 可以使用。
URL 编码(%xx)使文本在 URL 中安全。HTML 编码(&)使文本在 HTML 文档中安全。它们服务于不同目的——包含 & 的 URL 是错误的,而包含 %20 的 HTML 不会显示空格。根据上下文使用适当的编码。
在将用户生成的内容插入 HTML 之前始终进行 HTML 编码。切勿对不受信任的内容使用 innerHTML 或 dangerouslySetInnerHTML。使用 textContent 或 React 的默认 JSX 转义(自动编码)替代危险的 HTML 设置方式。