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

来源:互联网 发布:三了个七 淘宝买家秀 编辑:程序博客网 时间:2024/05/18 01:20

我好郁闷啦,用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']);