URL 编码解码(百分号编码)
输入内容(要编码的文本,或要解码的 % 编码串)
输出结果
工具说明
URL 编码(百分号编码,Percent-Encoding)是浏览器和服务器之间传输非 ASCII 字符的标准方式:每个中文字符会被转成形如 %E8%B7%A8 的三字节十六进制序列。你在地址栏、广告链接、API 日志里看到的一长串百分号,就是它。本工具提供 encodeURIComponent(完全编码)、encodeURI(保留 URL 结构)两个编码方向和解码功能,并带错误容错——非法的编码串会提示具体原因而不是静默失败。
两者的区别一句话记住:encodeURIComponent 会把 ?、&、=、/ 等全部编码,适合编码「参数值」;encodeURI 保留这些 URL 结构字符,适合编码「整条地址」。典型场景:投放中文关键词的广告链接、给下载链接加中文文件名参数、排查 UTM 链接乱码、从日志里还原用户的搜索词。浏览器地址栏显示中文只是展示层的自动解码,复制原始链接或写代码时仍然需要本工具做显式转换。
常见问题
encodeURIComponent 和 encodeURI 到底该用哪个?
编码「参数值」用 encodeURIComponent:它会把 & = ? / # 全部编码,保证中文值不会破坏 URL 结构;编码「整条 URL」用 encodeURI:它保留 & = ? / # 等结构字符,只转换中文、空格等非法字符。
为什么空格有时变成 %20,有时变成 +?
两种都是合法表示:%20 是标准百分号编码;+ 是 HTML 表单提交(application/x-www-form-urlencoded)的传统写法。本工具编码输出 %20;解码时会把 + 自动还原为空格(符合表单数据的实际含义)。
解码时提示失败是什么原因?
常见三种:编码串被复制时截断,% 后面不足两位十六进制字符;含 %ZZ 这类非法十六进制;编码串中间被插入了空格或换行。工具会保持原文不动并提示错误,修正后重新解码即可。
URL 里允许直接出现中文吗?
现代浏览器地址栏会自动编码后再请求,所以「看起来」可以直接用;但在 HTML 链接属性、代码拼接、邮件正文等场景中,未编码的中文可能导致链接被截断或乱码,规范做法是先编码。
这个工具会把我的数据发到服务器吗?
不会。编码和解码全部由浏览器原生函数在本地完成,本页不向任何服务器发送你输入的内容。