美文网首页
页面之间通过url传参出现中文乱码的解决办法

页面之间通过url传参出现中文乱码的解决办法

作者: Geek大姚 | 来源:发表于2018-10-30 13:52 被阅读0次

a(传值页面)   b(接收值的页面)

可以在页面a用encodeURI 编码url  在b页面用decodeURI解码url

a页面:

 functiontotest(){  

     varparm1=document.getElementById("tx1").value;

     varparm2=document.getElementById("tx2").value;

     varparm3=document.getElementById("tx3").value;

     varparm4=document.getElementById("tx4").value;

     varmyurl="zhongji2.html"+"?"+"parm1="+parm1+"&parm2="+parm2+"&parm3="+parm3+"&parm4="+parm4;

     // encodeURI 编码

     window.location.assign(encodeURI(myurl));

}

b页面:

functiongetvalue(){

    ///test2.html?parm1=myimg1&parm2=myimg2 

    //获得第一个属性 

    //decodeURI 解码

 varurl=decodeURI(location.href);

    vartmp1=url.split("?")[1]; 

    vartmp2=tmp1.split("&")[0]; 

    vartmp3=tmp2.split("=")[1]; 

    varparm1=tmp3;

    ...

}

项目中url比较多,转码一整条url可能会影响别的地方,可以只转码那个中文参数(只有参数有中文的情况下),例如:

//只转码numMen这个参数,同样转码的时候也只转码这一个参数,就可以解决影响其他方法的问题

n_url=n_url+’;taskId=’+GetQueryString(“id”)+’;menValue=’+encodeURI(numMen);//转码

//解码

先把url整条传过来,然后用字符串切割的方法,找到那个参数,然后再对那个参数进行解码;

sHref = window.location.href, //获取上个页面的url

menNum = sHref.split(‘;’), //数组

length = menNum.length – 1, //menValue所在的位置(始终是最后一个)

menValue = decodeURI(sHref.split(‘;’)[length].split(‘=’)[1]);//decodeURI是解码传过来的menValue的值(解决中文乱码)

相关文章

网友评论

      本文标题:页面之间通过url传参出现中文乱码的解决办法

      本文链接:https://www.haomeiwen.com/subject/hfrgtqtx.html