无需登录 数据私有 本地保存

Query String解析器 - URL参数编码解码

45
0
0
0

Query String 解析器

解析、编辑、生成URL查询参数,支持实时预览与一键复制

输入URL或查询字符串
参数列表 0 个参数
生成结果 查询字符串
常见问题与知识点

Query String(查询字符串)是URL中位于问号?后面的部分,用于向服务器传递参数。它由多个key=value对组成,每对之间用&符号分隔。例如:?name=John&age=25。查询字符串广泛用于GET请求、页面筛选、搜索功能等场景,是Web开发中最常用的数据传递方式之一。

URL编码(也称为百分号编码)用于将URL中的特殊字符转换为安全的传输格式。URL只能安全地包含ASCII字符集的特定字符。对于中文、空格、特殊符号等,必须进行编码。

常见编码示例:
• 空格 → %20+
• 中文"北京" → %E5%8C%97%E4%BA%AC
&%26
=%3D
#%23

encodeURI:用于编码整个URL,会保留URL的合法字符(如:/?&=#等),不会破坏URL结构。适用于编码完整URL。

encodeURIComponent:用于编码URL参数的值,会编码除了字母、数字和-_.!~*'()之外的所有字符,包括&=等。这是构建查询字符串时推荐使用的方法,能确保参数值不会破坏URL结构。

💡 最佳实践:对查询字符串的每个key和value分别使用encodeURIComponent进行编码。

现代浏览器提供了URLSearchParams API来解析查询字符串:

const params = new URLSearchParams(window.location.search);
params.get('name'); // 获取单个参数
params.getAll('tag'); // 获取重复参数的所有值
params.has('page'); // 检查参数是否存在


也可以手动解析:按&分割,再按=分割每个键值对,最后使用decodeURIComponent解码。本工具就是综合运用这些方法实现的。

URL中不能直接包含中文等非ASCII字符,必须进行UTF-8编码。每个中文字符通常被编码为3个字节,表示为%XX%XX%XX的形式。

例如"北京"的UTF-8编码为:
• 北 → UTF-8: E5 8C 97 → %E5%8C%97
• 京 → UTF-8: E4 BA AC → %E4%BA%AC

使用encodeURIComponent可以自动完成这个转换,使用decodeURIComponent可以还原。本工具在解析时自动解码中文,生成时自动编码,让您可以直接看到和编辑原始中文内容。

有多种方式在查询字符串中传递数组:

PHP风格?ids[]=1&ids[]=2&ids[]=3(使用方括号)
重复Key风格?ids=1&ids=2&ids=3(相同key多次出现)
逗号分隔?ids=1,2,3

URLSearchParams支持重复key的方式,使用getAll()获取所有值。本工具保留所有重复的key,每个显示为独立的一行,方便您逐个编辑。

1. 敏感信息:避免在查询字符串中传递密码、token等敏感数据,因为URL会被记录在服务器日志、浏览器历史中。
2. XSS防护:将参数值插入HTML前务必进行转义处理。
3. 参数验证:服务端必须验证所有参数,不能信任客户端传来的值。
4. 长度限制:不同浏览器对URL长度有限制(通常约2000-8000字符),大量数据应使用POST请求。
5. URL编码:始终对参数值使用encodeURIComponent编码,防止参数值中的特殊字符破坏URL结构或引发注入攻击。
✅ 已复制到剪贴板