js获取url中的中文参数出现乱码

funkyLover
  • 2.2k

如题
传递参数中带有中文
url?aaa=你好啊
用js获取aaa并显示到页面上出现乱码
该怎么解决

回复
阅读 33.3k
4 个回答
✓ 已被采纳

给你分享个代码

方法

      function getQueryString(key){
        var reg = new RegExp("(^|&)"+key+"=([^&]*)(&|$)");
        var result = window.location.search.substr(1).match(reg);
        return result?decodeURIComponent(result[2]):null;
      }

用法

console.log(getQueryString('a'));//2
console.log(getQueryString('b'));//3

我擦,,找到原因了
直接上代码

function getRequest() {   
       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 ++) {   
              //就是这句的问题
             theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]); 
             //之前用了unescape()
             //才会出现乱码  
          }   
       }   
       return theRequest;   
    }

function getQueryString(name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var l = decodeURI(window.location.search);
var r = l.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;

}

http://www.abc.com?name=中文
getQueryString("name")就可以了

挺好的,谢谢。

你知道吗?

宣传栏