AJAX下Post表单(解决中文乱码问题)

转载 2006年08月09日 17:24:00
AJAX下Post表单(解决中文乱码问题)
产生乱码的原因

用XMLHTTP对象Post表单的时候,是默认的用UTF-8字符来发送的。如果你的网页本来就是用的UTF-8编码的话,那么接收到的数据是正常的;如果你的网页编码是GB2312的话,问题就来了,POST过来的数据是UTF-8,而你整个站点是用GB2312来显示,那么所有的中文字符将全部变成乱码。

解决的方法

开始时候我有点偏激,一味的想改变XMLHTTP对象Post表单的发送方式,使它以GB2312来发送,完全找不到门路。后来经过论坛的朋友提醒,在后台接收数据时把编码转换,效果难道不是一样么。

后台语言如果是PHP,用 iconv( "UTF-8", "gb2312" , $_POST["post"]) 这个函数转换一下,轻松解决。至于ASP或其他后台语言的话,我并不熟悉,原理是一样的,在接收到数据后先转换编码再使用。

PS:XMLHTTP对象Post表单时,记得要增加2个表头设置^_^
var post="Apple=苹果&Banana=香蕉";
xmlObj.open ('POST',URL,true);
xmlObj.setrequestheader("content-length",post.length);
xmlObj.setrequestheader("content-type","application/x-www-form-urlencoded");
xmlObj.send (post);




Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=640997

[点击此处收藏本文]   发表于 2006年03月28日 10:34 AM




wewe 发表于2006-04-19 8:53 AM  IP: 219.133.6.*
听说 escape() 函数可以解决
解决方法很简单:使用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的值为中文不会产生乱码
你试一试看 

相关文章推荐

【The Most Important】浅谈JSP表单Post方式中文乱码问题

首先祝大家鸡年吉祥!在这里我要说下这两天里这个问题困扰着我,大过年的心情都被烦扰的不好了,所以我带着兴奋的心情来赶快完成这篇博客,解决大家的问题。我的问题是post方式传递表单数据,Tomcat服务器...

ajax post请求中文乱码问题解决(不使用escape方法,只使用filter)

本人另一篇博客总结了三种方案的比较,并提出了一种比本方案更好的一个方案,请参考:http://hjg1988.iteye.com/blog/472080      相信很多人都遇到过乱码问题,尤其在...
  • eric_za
  • eric_za
  • 2014年08月18日 15:30
  • 822

解决Ajax post中文乱码问题的三种方案

核心提示:本文介绍解决ajax post中文乱码的问题的方案,如果你的web应用中全部使用utf-8编码,那将不会有这上问题。这里主要是解决那些要求页面编码是gbk或 gb2312等非utf-8编码(...
  • eric_za
  • eric_za
  • 2014年08月18日 15:44
  • 867

解决struts2以GET方式提交表单中文乱码问题

之前用POST方式提交表单一直没有遇到中文乱码的方式,最近使用GET方式提交,发现中文乱码。 检测了struts.xml和web.xml等地方读配置好了 struts.xml web.x...

过滤器解决form表单中中文乱码问题

form表单中post请求的乱码问题很容易解决,只需设置request请求的响应头就OK了,但是get请求就不是那么容易解决的,下面就是在不改变服务器配置文件的前提下,利用过滤器将浏览器所有的请求的乱...

Ajax使用POST提交中文乱码问题

前段时间写JSP,使用AJAX以POST方式提交数据,如果是中文字符提交就会乱码,后来写ASP时用到AJAX以POST方式提交数据,中文一样是乱码。搜索一下相关资料,问题应该是提交数据时是以UTF...

提交表单时的中文乱码问题

一大早就遇见bug,jsp页面提交时,如果提交的是英文字符,能正确显示;如果提交中文时就会出现乱码,——开始郁闷! 翻了一大堆的资料,方查出原因:   产生原因:Tomcat下面总是会把GET/P...
  • fuyongs
  • fuyongs
  • 2015年08月12日 15:39
  • 491

Ajax中文乱码问题解决方案

  • 2012年09月18日 11:03
  • 1KB
  • 下载

JSP 表单输入,UTF编码,get方式提交数据出现中文乱码解决方法

开门见山直接点题 问题描述: JSP页面,表单输入中文,查询MySQL数据库内"歌曲"信息,检索结果为空。字符编码为UTF-8格式,服务器为tomcat 7,0 同时在控...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AJAX下Post表单(解决中文乱码问题)
举报原因:
原因补充:

(最多只允许输入30个字)