解决JS传参中文乱码

本文介绍了一种通过在前端使用双重encodeURI转码,并在后端进行URLDecoder解码的方法来解决网页显示乱码的问题。具体实现方式为:前端通过encodeURI对URL参数进行两次转码,后端通过URLDecoder.decode进行解码。

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

function PopupFK(cNum,type){
 	var url = "contract!Paying.action";
	url = url + "?contract.contractNum="+cNum+"&payingType="+type;
// if(isEmpty($(_this).attr("payId"))){
// url = url + "&s_paymentId="+paymentId;
// url = url + "&s_paymentDtlId="+paymentDtlId;
// }else{
// url = url + "&s_payId="+$(_this).attr("payId");
// }
	url = url+"&random="+Math.random();
     //在这里。用encodeURI进行两次转码。后台Action接收的时候。在进行一次。就不会出现乱码问题 url = encodeURI(url); url = encodeURI(url);   var ret = window.showModalDialog( url, "", "dialogWidth=950px;dialogHeight=600px;center=yes;border=thick;status=no;help=no;scrollbars=no" ); }
下面是Action代码片段
    String cNum = contract.getContractNum();
		String Num;
		try {
			Num = URLDecoder.decode(cNum,"utf8");
			System.out.println(Num);
			c = csl.queryOneByNum(Num);
		} catch (UnsupportedEncodingException e) {
			throw new RuntimeException("合同数据错误,请联系管理员");
			
		}    

  

转载于:https://www.cnblogs.com/-10086/p/3426790.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值