Query String 解析和 URL 编码有什么区别
区分 URL 查询参数解析、百分号编码、加号空格规则和完整 URL 处理边界。
区分 URL 查询参数解析、百分号编码、加号空格规则和完整 URL 处理边界。
解析关注 ?、&、=。输入 ?q=a%2Bb+c&tag=one&tag=two 会得到 q=a+b c 和两个有序 tag 行;mailto:ops@example.com 带 scheme 但没有查询部分,因此返回空参数,而不是制造一个键。
URL 编码关注字符能否安全放在 URL 组件中,例如空格、中文、&、=、#。处理完整 URL 时不要把协议、斜杠和分隔符整体编码,通常只编码单个参数值。
0单独的 % 或不完整转义必须报错,不能猜测。解析和编码不证明目标存在或安全;如果先解码整段 URL,编码分隔符可能被误当成结构,因此要保留序列化原文对照。
常见问题
通常先按 Query String 结构解析,再查看每个键和值解码后的内容。直接解码整段 URL 可能破坏分隔符语义。
不能。URL 编码是公开可逆的字符表示,不是加密,不适合隐藏 Token、密码或个人信息。
在本站查询解析器中,+ 与 %20 都会变为空格,%2B 才是字面加号。其他 URL 组件或接收端可能采用不同规则,重要参数要对照目标协议。
延伸阅读
继续探索