URL里面有特殊字符怎么办

URL中有特殊字符怎么办?例如 ? % ()/ \ . 等
要转码

+ URL 中+号表示空格                          %2B

空格 URL中的空格可以用+号或者编码 %20

/ 分隔目录和子目录                               %2F

? 分隔实际的URL和参数                       %3F

% 指定特殊字符                                     %25

& URL 中指定的参数间的分隔符            %26

= URL 中指定参数的值                          %3D

js代码

encodeURIComponent()//或者
escape() //或者
encodeURI()

三个方法有一些区别,具体的可以查一下看看。

但是“/”这个好坑,以TCP/IP为例,别的特殊符号都能编码一次接收到就这个不行!

转码一次 TCP%2FIP 里面有%仍然不能接收,但是别的就可以,比如TCP%3DIP就没事。

“/”转码两次TCP%252FIP 可以接收了。

但是后端(Java)解码一次就可以了

URLDecoder.decode(tag,"UTF-8");

从写程序上来说就是要编码两次!一个解码的代码就可以了。

“/”这个坑是bug?还是特意这么设计的?因为“/”在URL里面很重要,查了很多,大概和tomcat有关,还是说就我不行,总之如果你碰到这个问题也可以试试转码两次。

如果有你知道具体是怎么回事望指点一下,感谢。

文章参考
[1]https://www.cnblogs.com/lvmylife/p/7595036.html
[2]https://www.cnblogs.com/jiunadianshi/articles/2353968.html
[3]https://blog.csdn.net/u013833031/article/details/78828539?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

你可能感兴趣的:(url,http,javascript,java,spring)