在线工具

URL编码解码是什么,哪些场景需要用到

浏览网页的时候,地址栏经常看到一堆%xx百分号开头的字符,这就是URL编码结果。很多人不理解URL编码到底解决什么问题,什么时候需要编码,什么时候需要解码,接口调试的时候编码重复套娃,接口参数直接失效。

URL协议本身只允许一小部分ASCII字符直接放在地址栏。中文、空格、特殊符号# & = ? / 都不能直接放在URL参数里面。如果直接把中文放到请求参数,浏览器会自动编码,否则服务器无法正常解析参数,出现乱码,参数丢失。

URL编码本质,就是把不允许的字符转为%加上十六进制格式。解码就是反向操作,把百分号编码还原成原始文字。

日常开发和办公有大量场景用到编解码。第一,GET请求URL参数拼接,携带中文、特殊符号,必须编码。比如搜索关键词、传递中文用户名,忘记编码,后端拿到就是乱码。第二,爬虫、接口调试,抓包拿到的请求参数是编码后的字符串,想要看懂原始内容,就需要解码。第三,网址分享,链接里面包含#、&,直接复制会截断链接,编码之后完整传递。第四,OAuth、签名业务,部分签名逻辑要求参数进行URL编码,两次编码也是常见坑。

这里有一个高频踩坑点:重复编码。已经编码过的字符串,再次执行编码,内容会被二次转义,前后端解析出来数据完全不对。很多新手调试接口,反复编码,找不到问题根源。同样,不要对完整的URL整串编码,只编码查询参数部分,把http://xxx.com?域名部分编码,链接直接失效。

区分URL编码和Unicode编码,二者完全不一样,不要混淆。很多工具同时提供多种编码功能,使用前确认选择的模式。

网页端在线工具可以快速完成编解码,不需要写代码调试,适合临时接口调试。

需要快速处理URL编码解码,可以使用[URL编解码工具],一键完成编码和解码,适合接口调试、链接处理场景。