美文网首页
页面之间通过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