IE内核的浏览器在使用UTF-8编码的页面进行传值的时候出现乱码错误

在使用AJAX传递中文值时,火狐浏览器表现正常,但IE内核浏览器出现错误,传来的值被识别为GB2312编码导致在UTF-8页面上显示为乱码。解决方法是在传值时使用JavaScript进行编码,服务器端再进行解码。具体解决策略见网友提供的js代码。

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

我好郁闷啦,用ajax传中文在火狐里面,没有问题;在IE里面总是去到错误的程序,打印出结果才发现,IE里面传过来的值是gb2312的;

在utf-8的环境下,显示为乱码;

解决方法为:传值的时候用js编码,服务器端再解码

以下的网友的解答:

OS: XP SP3
新建记事本是 ANSI 格式,你 要另存为时选中 UTF-8;
其次IE6传值,URL后面的参数不是以UTF-8形式编码的;
客服端和服务器端最好统一编码,客户端浏览器最好把“查看-编码"的自动选择打上勾,代码里面也要设置,浏览器也要设置一下

你所说的传值乱码问题:用 JavaScript encodeURI() 把你要传的参数用它编码后再传,到服务器再解码
参考:http://www.w3school.com.cn/js/jsref_encodeURI.asp

js代码:

$.get(
			'sogo_map.php?action=hour&up='+encodeURI(up_place_hour)+'&down='+encodeURI(down_place_hour)+'&step='+encodeURI(step_place_hour),
			{},
			function(msg){
				//alert(msg);
				if(msg == 0){
                	alert("上车及下车地点输入有误,请重新输入");
                	return false;
				}else if(msg == 1){
					alert("无法获取参考时间及参考公里数,请稍后再试");
                	return false;
				}else{
					var data = msg.split(";");
					$("#time_budget_0").html(data[0]);
					$("#dis_budget_0").html(data[1]);
					$("input[name='time_budget_0']").attr("value", data[3]);
					$("input[name='dis_budget_0']").attr("value", data[1]);
					$("input[name='cost_budget_0']").attr("value", data[2]);
				}
			});
PHP解码:

$start = @urldecode($_GET['up']);
	$end = @urldecode($_GET['down']);
	$step = @urldecode($_GET['step']);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值