asp.net ajax中文乱码解决
2009-02-05 10:34
417 查看
今天自己做个项目碰到了传中文,接受时乱码,如下:
发送:
之后在在需要传中文的地方加上escape,解决!
相关解决办法如下:
解决AJAX传送中文会导致乱码的问题
//如果传送参数是直接赋予的,就会产生乱码!
http_request.open("POST",url,true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send("action="+strName+"&val="+val); //如果val的值为中文,则产生乱码
//解决方法很简单:使用javascript中的escape(string) 函数
http_request.open("POST",url,true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send("action="+strName+"&val="+escape(val)); //val的值为中文不会产生乱码
关于在AJAX中GET回的ResponseText中文乱码的最简解决办法
用AJAX 来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把 resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字会正确显示,而送出了GBK编码流的时候就乱了。解决的办法就是在送出的流里面加一个HEADER,指明送出的是什么编码流,这样XMLHTTP就不会乱搞了。
PHP:header('Content-Type:text/html;charset=GB2312');
ASP:Response.Charset("GB2312")
JSP:response.setHeader("Charset","GB2312");
发送:
function GetJCKSettingsAdd(state) { oDiv = $("loading"); oDivContent = $("JCKSZ"); if(state == 1) { urlstr="CZWSINOUT_Report_RPTSETAjax.aspx?command=3$"+Trim(document.getElementById('txtname1').value)+"$"+document.getElementById('AllFNselect').options[document.getElementById('AllFNselect').selectedIndex].value+"$"+document.getElementById('JCKselect1').options[document.getElementById('JCKselect1').selectedIndex].value; } else if(state == 2) { urlstr="CZWSINOUT_Report_RPTSETAjax.aspx?command=3$"+Trim(document.getElementById('txtname2').value)+"$"+document.getElementById('FNselect').options[document.getElementById('FNselect').selectedIndex].value+"$"+document.getElementById('JCKselect2').options[document.getElementById('JCKselect2').selectedIndex].value; //alert(urlstr); } getXML(); } function getXML() { oDiv.innerHTML = "<img src="images/ico_loading.gif" mce_src="images/ico_loading.gif" border='0' alt='' />"; xh = new ActiveXObject("Microsoft.XMLHTTP") xh.onreadystatechange = getReady xh.open("GET",urlstr,true) xh.send() } function getReady() { if(xh.readyState==4) { if(xh.status==200) { if(xh && xh.responseText) { //alert(xh.responseText); var xystr=new Array(3);//报表名称记录数组 xystr=xh.responseText.split("<!---->"); if(xystr[1]!="undefined"&&xystr[1]!=null&&xystr[1]!="") { if(xystr[1]!="false") { //alert("|"+xystr[1]+"|noonly|"); if(Trim(xystr[1])!="noonly") { oDivContent.innerHTML=xystr[1]; } else { alert("新名称已经存在,请您重新编辑名称!"); } } else { oDivContent.innerHTML = "抱歉,装载数据失败!请联系管理员!"; } } } } else { oDivContent.innerHTML = "抱歉,装载数据失败!原因:" + xh.statusText } } }
之后在在需要传中文的地方加上escape,解决!
function GetJCKSettingsAdd(state) { oDiv = $("loading"); oDivContent = $("JCKSZ"); if(state == 1) { urlstr="CZWSINOUT_Report_RPTSETAjax.aspx?command=3$"+escape(Trim(document.getElementById('txtname1').value))+"$"+document.getElementById('AllFNselect').options[document.getElementById('AllFNselect').selectedIndex].value+"$"+document.getElementById('JCKselect1').options[document.getElementById('JCKselect1').selectedIndex].value; } else if(state == 2) { urlstr="CZWSINOUT_Report_RPTSETAjax.aspx?command=3$"+escape(Trim(document.getElementById('txtname2').value))+"$"+document.getElementById('FNselect').options[document.getElementById('FNselect').selectedIndex].value+"$"+document.getElementById('JCKselect2').options[document.getElementById('JCKselect2').selectedIndex].value; //alert(urlstr); } getXML(); } function getXML() { oDiv.innerHTML = "<img src="images/ico_loading.gif" mce_src="images/ico_loading.gif" border='0' alt='' />"; xh = new ActiveXObject("Microsoft.XMLHTTP") xh.onreadystatechange = getReady xh.open("GET",urlstr,true) xh.send() } function getReady() { if(xh.readyState==4) { if(xh.status==200) { if(xh && xh.responseText) { //alert(xh.responseText); var xystr=new Array(3);//报表名称记录数组 xystr=xh.responseText.split("<!---->"); if(xystr[1]!="undefined"&&xystr[1]!=null&&xystr[1]!="") { if(xystr[1]!="false") { //alert("|"+xystr[1]+"|noonly|"); if(Trim(xystr[1])!="noonly") { oDivContent.innerHTML=xystr[1]; } else { alert("新名称已经存在,请您重新编辑名称!"); } } else { oDivContent.innerHTML = "抱歉,装载数据失败!请联系管理员!"; } } } } else { oDivContent.innerHTML = "抱歉,装载数据失败!原因:" + xh.statusText } } }
相关解决办法如下:
解决AJAX传送中文会导致乱码的问题
//如果传送参数是直接赋予的,就会产生乱码!
http_request.open("POST",url,true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send("action="+strName+"&val="+val); //如果val的值为中文,则产生乱码
//解决方法很简单:使用javascript中的escape(string) 函数
http_request.open("POST",url,true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send("action="+strName+"&val="+escape(val)); //val的值为中文不会产生乱码
关于在AJAX中GET回的ResponseText中文乱码的最简解决办法
用AJAX 来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把 resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字会正确显示,而送出了GBK编码流的时候就乱了。解决的办法就是在送出的流里面加一个HEADER,指明送出的是什么编码流,这样XMLHTTP就不会乱搞了。
PHP:header('Content-Type:text/html;charset=GB2312');
ASP:Response.Charset("GB2312")
JSP:response.setHeader("Charset","GB2312");
相关文章推荐
- asp.net ajax中文乱码的解决?2010-01-19 12:06
- asp.net ajax get post 中文乱码解决办法
- 解决asp.net导出excel时中文文件名乱码
- asp.net Cookie值中文乱码问题解决方法
- ASP.NET 解决URL中文乱码的解决
- asp.Net下短信猫发送短信中的中文乱码解决
- asp.net 导出Excel 在Firefox中中文乱码的解决方法
- asp.net 输出txt文件的时候中文出现乱码,已解决
- asp.net 导出Excel 在Firefox中中文乱码的解决方法
- C# asp.net页面通过URL参数传值中文乱码问题解决办法
- asp.net页面通过URL参数传值中文乱码问题解决办法
- asp.net 解决中文乱码问题
- 解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常
- 解决ajax.net 1.0中文乱码问题
- ASP.NET 2.0 解决中文乱码问题
- asp.net中cookie中文乱码的解决
- asp.net Cookie值中文乱码问题解决方法
- asp.net url传递中文参数的小技巧 解决中文乱码
- asp.net页面通过URL参数传值中文乱码问题解决办法
- 彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题