javascript - js获取url中的中文参数出现乱码
大家讲道理
大家讲道理 2017-04-10 15:36:17
[JavaScript讨论组]

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(4)
高洛峰

给你分享个代码

方法

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

用法

  • window.search取到的是queryString,如:?a=2&b=3
  • 如url为:http://localhost/test/test.html?a=2&b=3
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")就可以了

PHPz

挺好的,谢谢。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号