URL 解码工具
URL 编码解码工具 的预设方案
把百分号编码的 URL 转换回可读文本。适合阅读追踪链接、解码一个跳转参数,或者搞清楚一个日志里记录的 URL 实际指向了什么。
- 文件永不离开你的设备
- 免费,无需注册
- 无水印
- 加载后可离线使用
如何URL 编码解码工具
- 1
选择方向
把文本编码成适合 URL 的形式,或把编码过的 URL 解码回文本。
- 2
选择模式
组件模式会转义所有字符;完整 URL 模式会保留结构字符。
- 3
复制结果
结果会随输入即时更新。
一个解码后的 URL 参数实际上能揭示什么
一个营销追踪链接、一个跳转参数,或者从服务器日志里捕获的一个 URL,通常会以一长串一眼看不懂的百分号转义序列的形式出现——解码它能揭示实际的目标地址、搜索词,或者这个链接携带的数据,这往往是在点击一个可疑或陌生链接之前,搞清楚它实际会做什么最快的办法,或者是从一条被记录的请求 URL 里还原出用户当初搜索了什么。
正确读取多字节的 Unicode 转义序列
一个单独的重音字符或表情符号编码进 URL 之后,通常会产出好几个连续的百分号转义序列,而不是一个——é 会变成 `%C3%A9`,这是代表它 UTF-8 编码的两个转义字节,一个表情符号能产出四个。正确的解码意味着把这些多字节的 UTF-8 序列重新组合回它们所代表的那一个字符,而不是天真地把每一个 `%XX` 转义序列各自转换成一个独立字符,那样会对任何超出基本 ASCII 范围的内容产出乱码、无法阅读的输出。
解码时同时处理两种空格惯例
由于一个从日志、邮件链接或浏览器地址栏捕获的真实 URL,可能使用标准的 `%20`,也可能使用较老的表单编码 `+` 来表示空格,这个工具会同时检查并正确地把这两者都转换回一个字面空格,而不是只认识其中一种——粘贴一个用了 `+` 分隔符的查询字符串,不需要先手动把它转换成 `%20` 才能得到一个可读的结果。
常见问题
组件模式和完整 URL 模式有什么区别?
组件模式(`encodeURIComponent`)会转义包括 / ? & = # 在内的所有字符,这正是编码单个查询参数值时你想要的效果。完整 URL 模式(`encodeURI`)会保留这些结构字符不动,让整个地址依然可用。用错模式是最常见的 URL 编码 bug。
为什么我编码整个 URL 之后它就坏了?
你几乎肯定是对一整个完整 URL 用了组件模式,转义掉了 `://` 和用来分隔参数的 `&`。正确的做法是先单独编码每一个参数*值*,再组装 URL——不要对组装好的结果再做编码。
为什么空格有时变成 %20,有时变成 +?
百分号编码用的是 %20。`+` 这种形式来自较老的 HTML 表单编码(`application/x-www-form-urlencoded`),只在查询字符串里有效,在路径部分永远无效。这个工具产出的是 %20,同时能解码这两种形式。
表情符号和非英语字符是怎么处理的?
它们会被编码成 UTF-8 字节,所以 é 会变成 %C3%A9,一个表情符号会变成四个百分号转义序列。这才是正确的行为,并且能精确地往返转换。