关于百度URL中关键词编码的研究


最近项目中有关于js编码解码系列的工作,后来研究到百度搜索Url中关键词解码问题;
在web端百度搜索时,关键词有时候是不编码,或者有时候是encodeURIComponent编码,这个很容易解码;但是在wap端搜索时就有问题了;

问题:比如 在wap端搜索 “足球” 得到的url为:
http://wap.baidu.com/s?word=%25c6%2594%2591%25c5%256e%2561&st=11104i&sa=tb&ts=9043405&ix=575%25

上面url中word= 后面到&st前面的字符 %25c6%2594%2591%25c5%256e%2561 这些应该是 “足球” 的编码字符;

目测解码思路毫无头绪,然后不改变关键词的情况下,重新点击搜索按钮,发现竟然同样的关键词每次编码后的字符都不相同;如:
http://wap.baidu.com/s?word=%254f%251d%251a%254e%25f7%25ea&st=11104i&sa=tb&ts=9482164&ix=867%25
这时获取到 “足球” 的编码字符为 %254f%251d%251a%254e%25f7%25ea ;

多次点击发现,只有url中的 ix 参数跟随被搜关键词的编码变化,设想应该是跟 ix参数组合计算做的编码,研究了很长时间,始终无解;

因此将次问题原味写出来,希望大神指点回复,我应该如何针对类似解码问题作出正确分析呢?

编程 程序员 编码 字符编码 JavaScript

绝望的宅男 11 years, 7 months ago

同样的问题,一起探讨:
如果用将"足球"自己进行url编码,可以看到url为%E8%B6%B3%E7%90%83
这6个16进制数 ,减去百度的6个16进制数,差值都是一样的,
说明百度在原码基础上进行了偏移?
但是偏移量是怎么计算的呢?郁闷

闪光天空龙 answered 11 years, 7 months ago

Your Answer