Request.QueryString[],获取参数值时,对编码过的字符串会自动解码的。
今天遇到一个遇到一个很奇怪的问题,就是我在用querystring()获取参数值时,用了两种方法,结果得到两个不一样的值。
我传的参数是这样的,viewinfo=
%25E5%25B0%258A%25E6%2595%25AC%25E7%259A%2584QQ%25E4%25BC%259A%25E5%2591%2598%25EF%25BC%259A%253F%25E5%25BE%2585%25E2%2592%258E%2526nbsp%253B%2526nbsp%253B%2526nbsp%253B%2526nbsp%253B%2526nbsp%253B%25EF%25BD%2598
第一种是,直接用Request.QueryString["viewinfo"],得到,
%E5%B0%8A%E6%95%AC%E7%9A%84QQ%E4%BC%9A%E5%91%98%EF%BC%9A%3F%E5%BE%85%E2%92%8E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%EF%BD%98。
第二种,用js获取到参数,
function QueryString() {
var name, value, i;
var str = location.href;
var num = str.indexOf("?")
str = str.substr(num + 1);
var arrtmp = str.split("&");
for (i = 0; i < arrtmp.length; i++) {
num = arrtmp[i].indexOf("=");
if (num > 0) {
name = arrtmp[i].substring(0, num);
value = arrtmp[i].substr(num + 1);
this[name] = value;
}
}
}
var viewinfo = request["viewinfo"];
这样获取到的是
%25E5%25B0%258A%25E6%2595%25AC%25E7%259A%2584QQ%25E4%25BC%259A%25E5%2591%2598%25EF%25BC%259A%253F%25E5%25BE%2585%25E2%2592%258E%2526nbsp%253B%2526nbsp%253B%2526nbsp%253B%2526nbsp%253B%2526nbsp%253B%25EF%25BD%2598
得到结果是不一样的。第一种方法明显的字符串少了一点。心里想着是不是Request.QueryString["viewinfo"],解码了,然后就解码试试,结果不出所料。
浙公网安备 33010602011771号