位置:首页 > 网络编程 > html&js
点击展开栏目简介

                                                    

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);


上篇:js/jquery:js解码由php通过urlencode处理的中文

下篇:jquery:each循环中的跳出和终止后面代码执行的不同写法

发表评论 ​共有​条评论
  • 匿名发表