Url 编码、解码

忽略保留字符 ; , / ? : @ & = + $ #

为什么要URLEncode

URL在定义时,定义为只支持ASCII字符,所以URL的发送方与接收方都只能处理ASCII字符。所以当你的URL中有非ASCII字符时就需要编码转换。

在Web程序中进行URL请求时,常会遇到URL中含有特殊字符的问题,常见的特殊字符有 ?$&*@等字符,或者是中文。

遇到这种情况时,就要对URL进行编码,用一种规则替换掉这些特殊字符,这就是URLEncode

URLEncode 规则

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

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

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

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