URL 编码/解码
纯前端 URL 编码与解码,数据不离开浏览器。
输入的内容只在你的浏览器里处理,不上传任何服务器。
URL 编码(percent-encoding)把字符串中的特殊字符转成 %XX 的形式,使其可以安全地放进 URL 里。 「组件编码」对应 encodeURIComponent,会转义 / : ? # & = 等所有 URL 结构字符,适合编码某个查询参数的值(例如把整段文本塞进 ?q= 后面);「完整 URL 编码」对应 encodeURI,会保留这些结构字符不变,只转义空格等非法字符,适合编码一整条 URL。
常见问题
组件编码和完整 URL 编码有什么区别?
组件编码(encodeURIComponent)会转义 / : ? # & = 这些字符,因为它假设你编码的是 URL 中的“一部分”(比如某个参数值),这些字符如果不转义会破坏 URL 结构。完整 URL 编码(encodeURI)假设你编码的是“整条” URL,所以会保留这些结构字符,只转义空格、中文等非法字符。
什么时候该用组件编码?
当你要把一段任意文本放进某个查询参数的值里时,例如 ?redirect=<这里>,这里应该用组件编码,否则文本里的 & 或 = 会被误认为是新的参数。
为什么解码会报错?
如果字符串里包含孤立的 % 号(后面不是合法的两位十六进制数),解码函数会抛出错误,因为这不是一个合法的百分号编码序列。