解决url乱码,主要有三种方法:unescape,encodeURI以及encodeURIComponent(),对于url中含有中文的,发现此前用的不起作用,改成了decodeURL中文解码正常,代码如下

var url = window.location.search; //获取url中"?"符后的字串   
                    var theRequest = new Object();
                    if (url.indexOf("?") != -1) {
                        var str = url.substr(1);
                        strs = str.split("&");
                        for (var i = 0; i < strs.length; i++) {
                            //就是这句的问题
                           console.log( theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]));
                            //之前用了unescape()
                            //才会出现乱码  
                        }
                    }

代码封装参考

 function getUrlParam(name) {

      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = window.location.search.substr(1).match(reg); //匹配目标参数
        if (r != null) return decodeURI(r[2]); 
        return null; //返回参数值
}
getUrlParam(参数1);
getUrlParam(参数2);

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐