有关“+”和“_”的search。

        今天下午QA给我报了一个bug,说输入“f+f”或者“f_f”能够搜索出“f f”的结果。看着这bug的描述,心里还想着怎么会呢,模糊查询也不会出现这样的结果啊!赶紧自己输入“f+f”和“f_f”验证下,结果两次都输出了“f f”。由于查询的条件是通过URL后的参数输入的,当我输入“f+f”时,发现参数传入到服务端后变成了“f f”了,如果是这样,那search的结果是正确的。但为什么输入的参数“f+f”怎么会变成了“f f”呢?而且在输入参数都通过escape进行编码了。于是上网google了一下,发现escape函数是不会对“+”进行编码的,但请求时,web服务器会过滤掉“+”这个字符。所以我们必须手工对“+”进行编码,把所有的“+”都改变为“%2b”。修改代码测试,再次输入“f+f”,结果不能搜索出“f f”的结果了。
而对输入“f_f”搜索出“f f”的结果,主要原因是这个是模糊查询的一种。“f_f”表示搜索出含有两个“f”字符而且中间有一个字符分隔的,“f  f”正好满足这个条件,于是被搜索出了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值