平时使用ajax或者直接在url中加参数对应web开发者来说,是最频繁的事情;而已有时候发现发送到后台的参数大不如人意,部分缺失或者变化导致后台数据处理异常,so。。对应url请求的参数中,那些属于浏览器特殊的字符呢?如下:
url特殊符号 在url中实际含义 转码后的十六进制表示
符号 | 含义 | 编码 |
+ | +号表示空格 | %2B |
空格 | 用+号或者编码 | %20 |
/ | 分隔目录和子目录 | %2F |
? | 分隔实际的 URL 和参数 | %3F |
% | 指定特殊字符 | %25 |
# | 表示书签 | %23 |
& | 参数间的分隔符 | %26 |
= | URL 中指定参数的值 | %3D |
解决方式:
前端使用:encodeURIComponent("")
encodeURIComponent('+/ ?&=%')
"%2B%2F%20%3F%26%3D%25"
后端使用:URLDecoder
URLDecoder.decode("%2B%2F%20%3F%26%3D%25","UTF-8")
+/ ?&=%