1.1.6. URLEncode¶
urlencode 是一种对 URL 进行编码的方法,用于将特殊字符转换为符合 URL 规范的安全字符,以便在网络传输或嵌入到 URL 中时不引起歧义或错误。
原理¶
保留字符:
字母、数字和以下字符被视为“保留字符”:
- _ . ! ~ * ' ( ) ; : @ & = + $ , / ? # [ ]
编码原则:
使用百分号(%)后跟两个十六进制数字表示每个字符/每个字节的编码。
所以URL编码(URL Encoding)也称作百分号编码(Percent Encoding)
例:
(编码前)https://www.baidu.com/s?wd=你好
(编码后)https://www.baidu.com/s?wd=%E4%BD%A0%E5%A5%BD
URLEncode 规则:
将空格转换为加号(+)
空格也可以直接用其十六进制编码方式,即用%20表示,而不是将它转换为加号(+)。
对0-9、a-z、A-Z之间的字符保持不变
对于所有其他的字符:
用这个字符的当前当前字符集编码在内存中的十六进制格式表示,并在每一个字节前加上一个百分号(%)
如字符“+”是用%2B表示,字符“=”用%3D表示,字符“&”用%26表示
每个中文字符在内存中占两个字节
如字符“中”用%D6%D0表示,字符“国”用%B9%FA表示。