kong_bei

博客园 首页 联系 订阅 管理

    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"],解码了,然后就解码试试,结果不出所料。

 

posted on 2010-09-16 14:20  Love_you  阅读(428)  评论(0)    收藏  举报