编码

浏览器url编码

1.将空格转换为加号(+)

2.对0-9、a-z、A-Z之间的字符保持不变

3.对于所有其他的字符,用这个字符的当前当前字符集编码在内存中的十六进制格式表示,并在每一个字节前加上一个百分号(%),如字符“+”是用%2B表示,字符“=”用%3D表示,字符“&”用%26表示,每个中文字符在内存中占两个字节,字符“中”用%D6%D0表示,字符“国”用%B9%FA表示。

4.空格也可以直接用其十六进制编码方式,即用%20表示,而不是将它转换为加号(+)

5、浏览器通常会对URL中的其他特殊字符,如空格(编码为%20)、斜杠(编码为%2F)、冒号(编码为%3A)等进行编码,以确保URL的正确性和可传输性。但对于&字符,通常不进行编码,因为它在URL中有特定的分隔作用。

6、浏览器通常不会对竖线字符(|)进行编码,因为竖线在URL中通常被视为普通字符,而不是特殊字符。 URL编码主要用于将特殊字符转换为URL安全格式,以确保它们可以正确传输和解析,同时不干扰URL的结构

在使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误。这些特殊符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了

序号 特殊字符 含义 十六进制值
1 + URL 中+号表示空格 %2B
2 空格 URL中的空格可以用+号或者编码 %20
3 / 分隔目录和子目录 %2F
4 ? 分隔实际的 URL 和参数 %3F
5 % 指定特殊字符 %25
6 # 表示书签 %23
7 & URL 中指定的参数间的分隔符 %26
8 = URL 中指定参数的值 %3D

image-20231104164730812