url允许的字符如下
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
-_.~!*'();:@&=+$,/?#[] //保留字符
1
2
3
4
如果要传输其他字符则必须urlencode之后再传输
另外,保留字符均有特殊含义,若传输的保留字符纯粹是属于一个value值,那么也需要先进行urlencode之后再传输
特殊符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。比如&符号,如果把它当做query string的连接符,那么用&即可,如果把它当做一个value中的特殊字符,则需要使用其urlencode编码%26
下表中列出了一些URL特殊符号及编码。
序号 | 特殊字符 | 含义 | 十六进制值 |
1 | + | URL 中+号表示空格 | %2B |
2 | 空格 | URL中的空格可以用+号或者编码 | %20 |
3 | / | 分隔目录和子目录 | %2F |
4 | ? | 分隔实际的 URL 和参数 | %3F |
5 | % | 指定特殊字符 | %25 |
6 | # | 表示书签 | %23 |
7 | & | URL 中指定的参数间的分隔符 | %26 |
8 | = | URL 中指定参数的值 | %3D |