问题:url传有特殊字符出现丢失,因为特殊字符会被特殊处理
我们先用getUrlParam()函数获取参数,
// 获取链接参数
function getUrlParam(name) {
//构造一个含有目标参数的正则表达式对象
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
//匹配目标参数
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null; //返回参数值
}
再用encodeURIComponent()函数转码,例如:
//url里边包含@等特殊字符
var url = "https://6.hbibwl.com.cn/wxkf/main.html?pin=U.P0Ky40vy63TnhM65rk@_B9&id=8";
var pin = encodeURIComponent(getUrlParam('pin'));
//打印转码的pin值
console.log(pin);
结果:
U.P0Ky40vy63TnhM65rk%40_B9
PHP解码:
$_POST['pin'] = urldecode($_POST['pin']);
echo $_POST['pin'];
结果:
U.P0Ky40vy63TnhM65rk@_B9