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

本文介绍了一种在前端页面间传递包含中文字符的URL参数的方法。通过使用encodeURI对发送页面的URL进行编码,并在接收页面使用decodeURI解码,确保了中文字符能够正确传递。此外,还提供了一种只对含有中文的特定参数进行编码和解码的技术方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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的值(解决中文乱码)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值