URL 百分号编码与解码
把文本做百分号编码以便放进 URL,或者解码回来。「参数值」范围会连分隔符(/ ? & =)一起转义,这正是查询参数需要的;「整条 URL」范围则保留结构不动。
常用预设
每一个都有自己的页面,说明这个要求是从哪来的、结果会是什么样。
如何使用
- 1选方向:编码还是解码。
- 2选范围——「组件」用于单个值,「整条 URL」用于一个完整地址。
- 3把文本粘进输入框,结果实时渲染。
常见问题
- 「组件」和「整条 URL」有什么区别?
- 组件会连保留字符一起转义——/ ? & = #——查询串里的值需要的正是这个,否则这些字符会把值提前截断。整条 URL 不动结构,地址还是那个能用的地址,只有空格和非 ASCII 字符被转义。
- 为什么空格有时候是 %20,有时候是 +?
- %20 是 URL 标准,也是这个工具输出的形式。+ 来自 HTML 表单提交,它的请求体用的是稍有不同的一套编码。这里两种都能正确解码,但在 URL 的任何位置都安全的是 %20。
- 为什么一个 & 就把我的链接搞坏了?
- 因为没转义的 & 会开启下一个参数。值里带 & 就必须编码成 %26——用「组件」范围,它干的正是这件事。
- URL 里已经有中文或带音标的字母,还需要编码吗?
- 浏览器会不编码地显示、发请求时再编码,所以对着看和点击没差别。但只要这条 URL 交给浏览器以外的东西处理——调接口、发邮件、写进配置文件——就先编码。