我们这网站中总能看到这样一种url,例如:百度中直接搜索"周杰伦"
https://www.baidu.com/sugrec?&prod=pc_his&from=pc_web&json=1&sid=26350&hisdata=%5B%7B%22time%22%3A1691934763%2C%22kw%22%3A%22%E5%91%A8%E6%9D%B0%E4%BC%A6%22%2C%22fq%22%3A4%7D%5D&_t=1691934762862&req=2&bs=%E5%91%A8%E6%9D%B0%E4%BC%A6&csor=0
为什么要有urlencode
- 此时会发现, 在浏览器上明明是能看到中文的. 但是一旦复制出来. 或者在抓包工具里看到的. 都是这种%. 那么这个%是什么鬼? 也是加密么?
- 非也, 其实我们在访问一个url的时候. 浏览器会自动的进行urlencode操作. 会对我们请求的url进行编码. 这种编码规则被称为百分号编码. 是专门为url(统一资源定位符)准备的一套编码规则.
http://xxx.com/admin/lucky专辑/特殊.mp4?username=用户填写&psw=用户填写
用户填写 = xwl
用户填写 = 123
# 上述逻辑是正常逻辑
用户填写 = xwl&mama=123
用户填写 = 123
http://xxx.com/admin/lucky专辑/特殊.mp4?username=xwl&mama=123&psw=123
# 上述逻辑, 特殊的符号如果不做任何处理. 可能会改变url的整体逻辑.
解决方案. 把参数中的特殊符号. 进行特殊得处理. 在服务器端. 接受参数的时候. 反向操作
python处理urlencode
from urllib.parse import urlencode, unquote, quote
dic = {
'bs':'周杰伦'
}
r = urlencode(dic) #只能传字典
print(r) #bs=%E5%91%A8%E6%9D%B0%E4%BC%A6
s = 'xwl&mama/=123'
print(quote(s)) # 它的参数是字符串. xwl%26mama/%3D123
print(quote_plus(s)) # 它的参数是字符串. 多处理一个/ xwl%26mama%3D123
标签:URLEncode,web,05,url,urlencode,xwl,123,填写,22%
From: https://www.cnblogs.com/xwltest/p/17627399.html