AJAX下Post表单(解决中文乱码问题)
2006-08-09 17:24
375 查看
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的值为中文不会产生乱码
你试一试看
产生乱码的原因
用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的值为中文不会产生乱码
你试一试看
相关文章推荐
- AJAX下Post表单(解决中文乱码问题)
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- 解决ajax提交表单时中文乱码的问题
- http协议4---GET方式和POST方式获取表单数据举例3(统一方式获取,解决中文乱码问题)
- 利用jquery实现Ajax技术,post方式传值中文乱码问题的解决办法。
- Spring MVC 3 表单中文提交post请求和get请求乱码问题的解决方法
- spring mvc 3.0 中解决post表单提交出现的中文乱码问题
- Ajax的POST方法中文乱码问题解决
- 解决在Unity3D中通过Post向服务器提交请求,表单中带有中文导致的乱码问题!
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- 织梦gbk版本中ajax提交自定义表单中文乱码问题解决方法
- struts2_Ajax_post_解决了中文乱码问题
- 解决在weblogic(可能与之无关)下jsp通过post传递中文内容表单乱码问题
- Ajax提交表单时的中文乱码问题的解决
- 解决表单Post方式提交的中文乱码问题
- 解决POST提交中文乱码问题
- Ajax技术之解决中文乱码问题
- 解决Fiddler查看Post参数中文乱码的问题
- 关于struts2中表单提交时,中文乱码问题的解决
- asp+ajax解决中文乱码问题