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的值为中文不会产生乱码
你试一试看 

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

AJAX下Post表单(解决中文乱码问题) 产生乱码的原因用XMLHTTP对象Post表单的时候,是默认的用UTF-8字符来发送的。如果你的网页本来就是用的UTF-8编码的话,那么接收到的数据是正常的...
  • phpme
  • phpme
  • 2006年08月09日 17:24
  • 5265

php接收ajax中文,后台乱码解决办法

情景描述: 前台通过jQuery的ajax拼接url的形式向php后台提交数据,url如下: sql/getSaleCash.php?type_parent=-1&type_id=-1&sale_...
  • hgg923
  • hgg923
  • 2016年01月10日 10:08
  • 1347

JSP中,AJAX使用POST方式提交中文乱码问题解决

/***********本人原创,欢迎转载,转载请保留本人信息*************/ 作者:wallimn 电邮:wallimn@sohu.com 博客:http://blog.csdn....
  • wallimn
  • wallimn
  • 2006年11月12日 14:06
  • 12949

利用jquery实现Ajax技术,post方式传值中文乱码问题的解决办法。

问题:  提交后后台action程序时,取到的type是乱码  解决方法:  方法一:提交前采用encodeURI两次编码,记住一定是两次  1.修改以下代码  复制代码代码如下: ...
  • sinat_21113411
  • sinat_21113411
  • 2014年09月21日 16:55
  • 6937

PHP中Ajax返回乱码问题

描述:通过jquery的$.ajax调用PHP页面 , 并在json_encode之后返回。 错误: 一直出现   例如:???X3  之类的错误 ,无法正常使用 解决方法:    ...
  • hnnyhxjb
  • hnnyhxjb
  • 2017年02月17日 12:06
  • 195

ajax $.post传值中文乱码!

方法一在后台中使用request.setCharacterEncoding("UTF-8");方法二$.ajax({ type:'post', ...... contentType:...
  • zhenwodefengcaii
  • zhenwodefengcaii
  • 2017年05月04日 21:39
  • 250

JQuery Ajax Post传递中文乱码

JQuery Ajax Post传递中文乱码 ajax与jquery.ajax中文参数post传递乱码处理方法 今天在做项目时,需要用到Ajax,之前我在用GET方式传递中文参数时,只需要在后...
  • qbg19881206
  • qbg19881206
  • 2013年05月30日 15:43
  • 9189

java web开发时表单提交引起的一些中文乱码问题

1、pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。  2、contentType="text/html;charset=UTF-8"的作用是指定对服务器...
  • buqideyu
  • buqideyu
  • 2014年02月21日 18:51
  • 906

AJAX在Post中文的时候解决乱码的方法。

http://blog.csdn.net/ruanruoshi/archive/2006/03/31/645591.aspx 在上一篇说的"用AJAX的Get和Post调用Servlet的简单示例。"...
  • ruanruoshi
  • ruanruoshi
  • 2006年03月31日 14:27
  • 9520

ajax乱码解决汇总

ajax乱码解决总结第一,javascript沿用java的字符处理方式,内部是使用unicode来处理所有字符的,第二,utf-8是每个汉字(unicode字符)用3个字节来存储。第三,用utf-8...
  • zhanngle
  • zhanngle
  • 2008年01月24日 16:06
  • 61880
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AJAX下Post表单(解决中文乱码问题)
举报原因:
原因补充:

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