URLENCODE加号+

一、问题

字符串"小 狗++小 猫.png"经过URLEncode、URLDecode后,变成"小 狗  小 猫.png",加号变成了空格;

 

二、原因

按网上的说法,URLEncode根据请求方式的不同存在两种情况:

  + 空格
加密后,情况1 + %20
加密后,情况2 %2B +

URLDecode解密不区分URLEncode是什么情况:

  + %2B %20
解密后,只有一种情况 空格 + 空格

根据以上的分析,以"小 狗++小 猫.png"为例:

  小 狗++小 猫.png 解密结果
加密后,情况1 %E5%B0%8F%20%E7%8B%97++%E5%B0%8F%20%E7%8C%AB.png 小 狗  小 猫.png
加密后,情况2 %E5%B0%8F+%E7%8B%97%2B%2B%E5%B0%8F+%E7%8C%AB.png 小 狗++小 猫.png

 

三、解决办法

加密方和解密方都无法根据加密后的结果判断是哪种情况;

解密方遇到情况1,不希望解密后+变成空格,可在解密前,将+替换成%2B;

 

posted @ 2022-08-08 13:34  seeAll  阅读(405)  评论(0编辑  收藏  举报