URL
URL 编码排查:为什么复制出来的链接会坏
URL 编码问题经常表现为 404、参数丢失、签名校验失败或中文乱码。排查时先分清路径和查询参数。
URL 的路径部分和查询参数部分规则不同。路径里的斜杠 / 表示层级,查询参数里的 & 表示参数分隔,= 表示键值分隔。如果原始值里包含这些字符,就必须正确编码。
常见问题是二次编码。比如空格第一次变成 %20,第二次又变成 %2520,服务端解一次后仍然看到 %20。反过来,如果该编码的值没有编码,签名串、回调地址或搜索关键词就会被截断。
另一个问题是把整个 URL 当成参数传递。此时内层 URL 需要作为一个值整体编码,否则它自己的 ? 和 & 会干扰外层参数结构。
排查方法
- 把 URL 拆成协议、域名、路径和查询参数。
- 逐个检查参数值是否包含特殊字符。
- 确认编码发生在客户端、服务端还是代理层。
- 对签名接口,严格使用文档要求的编码顺序。