编码强度
原文
编码 / 解码结果

常见使用场景

🔗
拼接 URL 参数
把用户输入或中文字符放进 URL query 时必须先 encodeURIComponent,否则会破坏 URL 结构或被服务器误解析。
📋
还原从日志中复制的 URL
从 Nginx / 应用日志里看到的 URL 全是 %E4%B8%AD%E6%96%87 这种百分号编码,粘进来一键解码就能看到原始中文。
🛡️
防 XSS 转义
把用户内容渲染到 HTML 之前,至少需要把 & < > " ' 五个字符转义为命名实体,避免脚本注入。
📧
ASCII-only 邮件
某些老旧邮件系统只支持 ASCII,把中文用「编码全部非 ASCII + 十进制」生成 &#19978;&#28023; 形式即可正确显示。

使用技巧

  • encodeURIComponent vs encodeURI:前者编码所有 URL 保留字(包括 /、?、&),适合编码单个参数值;后者保留 URL 结构字符不动,适合处理已经组合好的整 URL。
  • + 与 %20:URL 路径必须用 %20,仅 form-encoded body / query string 才允许 +。本工具默认 %20,勾选选项可切换为表单风格。
  • 双向解码:解码 URL 时本工具同时把 + 还原为空格,能正确处理 form-encoded 数据。
  • HTML 数字 vs 命名实体:命名实体(&amp;)人类可读但只覆盖 ~250 个常用字符;数字实体(&#9731; 雪人 ☃)能精确表示任意 Unicode 码点。
  • HTML 解码鲁棒:解码使用浏览器原生 DOMParser,命名实体、十进制 &#65; 与十六进制 &#x41; 三种形式都自动识别。
常见问题
encodeURIComponent 与 encodeURI 有什么区别?
encodeURIComponent 会转义所有 URL 保留字符(包括 / : ? # & = +),适合编码单个参数值;encodeURI 假设你给的是一个完整 URL,因此保留 / : ? # & = + ; , @ 等结构字符不转义。如果你不确定,选 encodeURIComponent 更安全。
URL 中的空格应该编码成 + 还是 %20?
在 URL 路径与片段(#fragment)中应使用 %20。仅在 application/x-www-form-urlencoded(HTML form 提交、POST body)的 query string 中可以用 +。本工具默认 %20,可勾选「将空格编为 +」切换为表单风格。
HTML 实体编码会把所有字符都转义吗?
默认仅转义在 HTML 中有特殊含义的 5 个字符:& < > " '。如果你打算把内容嵌入 ASCII-only 邮件正文或老旧系统中,可勾选「编码全部非 ASCII」让所有 Unicode 字符变成 &#xXXX; 数字实体。命名实体人类可读但只覆盖 ~250 个常用字符,数字实体能精确表示任意 Unicode 码点。
数据会上传到服务器吗?
不会。所有编解码都在你的浏览器内完成(encodeURIComponent / decodeURIComponent + DOMParser),输入内容从不离开你的设备,可放心处理含密钥、Token、SQL、个人信息的内容。