前端对url中特殊字符(=、+、&、?等)的处理

Url中有些字符会引起歧义 : =、+、&、?、#等。

RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符( ! * ' ( ) ; : @ & = + $ , / ? # [ ] )。

Url可以划分成若干个组件,协议、主机、路径等。

当保留字符以参数的形式出现在url中就会引起歧义,导致划分出错,从而导致页面出现bug

 

解决方案:

用特殊字符的编码代替字符:

字符 在url中的含义 编码
+ 表示空格  %2B
/ 分隔目录和子目录 %2F
空格   %20
? 分隔实际的 URL 和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& 指定的参数间的分隔符

%26

= 用于指定参数的值 %3D

 

 

    

 

 

 

 

 

 

 

 

 

举个栗子:

 

 

 

 

posted @ 2021-10-12 11:34  xuwennn  阅读(2558)  评论(0编辑  收藏  举报