博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
location search的中文加密
阅读量:6191 次
发布时间:2019-06-21

本文共 974 字,大约阅读时间需要 3 分钟。

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

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

 

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

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

 

分享以后:

location.search = "?provinceName="

这样就对江苏进行了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);

}

也可以做一个公共组件

function(name){

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

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

        if (r) {

        while(r[2].indexOf('%')>-1){

    r[2]= decodeURI(r[2]);

   }

            return r[2];

        }

        return null;

    }

 

转载于:https://www.cnblogs.com/Super-scarlett/p/9253616.html

你可能感兴趣的文章
Hadoop-No.3之序列化存储格式
查看>>
Windows Phone 7 学习笔记2:感应设备的方向
查看>>
kernel_read【转】
查看>>
PHP.ini配置文件(转载)
查看>>
《Ext JS权威指南》——1.4节Ext JS的开发工具的获取、安装与配置介绍
查看>>
高维度CRM销售漏斗模型操作中注意事项
查看>>
OA系统和CRM客户关系管理 流程是核心
查看>>
最新版Win 10S遭吐槽:看起来很美,用起来很烦
查看>>
奥巴马政府发布最新Fintech白皮书,提出十大创新监管原则
查看>>
Infinera Q2营收同环比下滑 加速推出新产品
查看>>
HR软件Impraise获160万美元种子投资
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
苏州扎实推进消防大数据 综合业务平台试点应用
查看>>
物联网与智能化是我国传感器发展突破口
查看>>
调试是新建数据中心成功运营的关键
查看>>
雅虎证实5亿账户被窃 刷新单一网站用户信息泄露纪录
查看>>
科学家警告:被黑客入侵的工业机器人可能将人类生命置于危险中
查看>>
你的电脑会感染勒索病毒吗?快用这款工具查一下
查看>>
村路安防建设加速 科学推进安全前行
查看>>
“业务为王”时代下,DevOps怎么玩?
查看>>