码迷,mamicode.com
首页 > 其他好文 > 详细

location search的中文加密

时间:2018-07-02 14:52:15      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:pms   reg   car   func   span   dna   and   解决方案   arch   

最近项目中遇到一个这样问题,在页面跳转时,追加了location.search,有中文字符,但是在分享第二次时,这个链接无法获取中文字段,变成乱码。

仔细对比,发现在页面分享时,浏览器自动对中文进行了二次加密,所以需要二次解密,才可以获取字段值。

 

eg.   location.href = "index.html?provinceName="+"江苏";

location.search = "?provinceName=%25E6%25B1%259F%25E8%258B%258F%25E7%259C%2581"

 

分享以后:

location.search = "?provinceName=%2525E6%2525B1%25259F%2525E8%25258B%25258F%2525E7%25259C%252581"

这样就对江苏进行了2次加密。

针对这个问题,2种解决方案:

1>自己封装加密方法,对加密的中文用英文显示,这样浏览器就不会做二次加密了。

2>可以通过循环,直到解密成中文。

pms:function(name){

        var reg = new RegExp(‘(^|&)‘ + name + ‘=([^&]*)(&|$)‘, ‘i‘);

        var r = location.search.substr(1).match(reg);

        if (r) {

            return decodeURI(r[2]);

        }

        return null;

    }

 

var provinceName= api.pms(‘provinceName‘);

while(provinceName.indexOf(‘%‘)>-1){

provinceName= decodeURI(provinceName);

}

 

location search的中文加密

标签:pms   reg   car   func   span   dna   and   解决方案   arch   

原文地址:https://www.cnblogs.com/Super-scarlett/p/9253616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!