js/jquery:处理获取地址栏中文参数乱码
js版:传的时候(对整个url进行encodeURI):
var link='guest_list.shtml?keywords=美国';
link=encodeURI(link); // 有时候需要两次encodeURI(encodeURI(link))
取的时候:
var keywords=getUrlParam('keywords');//获取参数值,如果geturlpram用的decodeURI 直接直接urldecode,应该直接可用
keywords=decodeURI(escape(keywords));// 如果geturlpram用的unescape这么处理
function getUrlParam(name){//获取url参数函数 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return '';// 1 utf-8编码用这个即可 // if (r != null) return decodeURI(r[2]); return '';// 中文参数解码用这个decodeURI不会乱码 }
php版:传的时候对参数编码
link="guest_list.shtml?keywords=".urlencode('中文');
取的时候解码
urldecode(keywords);
js传php(gbk编码):
js端:
var link='guest_list.shtml?keywords=美国';
link=encodeURI(link); // 有时候需要两次encodeURI(encodeURI(link))
php端:
$keywords=urldecode($keywords);
echo iconv('utf-8', 'gbk', $keywords);