首页 > 编程知识 正文

python url解码,urlencode编码详解

时间:2023-05-04 10:47:00 阅读:40145 作者:675

慕田峪4524236

其实有区别。 php的urlencode将星号*转换为*,而java的则保留。 我以前在与接口对接时踩过这个洞。 复选标记失败,因为urlencode结果不匹配

以下是基于php和java的RFC2396中规定的9个非预约符号的处理结果,可以看出*和~的处理不同

RFC2396中未保留字符的说明

datacharactersthatareallowedinauributdonothaveareservedpurposearecalledunreserved.theseincludeupperandlowercaseletters,decaseleters

未保留=alpha num |简单蜡烛

简单的蜡烛='-' | '_' | '.' |! ('|'~'|'*'|''|||'|' () ) ) () ) ) ) ) ) ) )

unreservedcharacterscanbeescapedwithoutchangingthesemanticsoftheuri,butthisshouldnotbedoneunlesstheurisbeingusedinaconacontexttttttttheuri

补充

上面的PHP截图不小心写了rawurlencode,既然是在问urlencode,就需要补充urlencode的执行结果

可见,urlencode和URLEncoder的非保留字符处理的区别只表现在符号“*”上。 值得注意的是,百度搜索“urlencode和rawurlencode的区别”后发现,搜索到的博文基本上只提到了“”处理的区别,没有提到“~”

上述代码执行结果基于某个在线工具,不排除在不同环境(语言版本)中执行的结果不一致的可能性

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。