url中的特殊字符+ % # & = ? /无法被后端解析解解决方法

项目中有一个接口是用GET方法接收参数的,测试的时候发现当URL的参数中出现 + 号的时候,传到后端 + 号全都变成了空格了。
然后从网上找到了原因:URL参数中是不能出现+ % # & = ? /等特殊字符的,因为这些字符在URL中有默认的含义,比如&在URL中表示参数间的分隔符,如果不将&转义而直接放在GET请求的参数里,后端的Tomcat就会以这个&为分隔符将参数拆分掉。
如果要传递这些特殊字符给后端,需要将它们转义。转码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 +号的编码值是"%2B"。
下表中列出了一些URL特殊符号及编码:

特殊字符 在URL中的默认含义 转义码
+ URL 中+号表示空格 %2B
空格 %20
/ 分隔目录和子目录 %2F
? 分隔实际的 URL 和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章