网站制作学习网经验与学习→正文:jquery post中文乱码
字体:

jquery post中文乱码

经验与学习 2011/6/7 17:05:27  点击:不统计

<本文原载于www.forasp.cn>

用jquery做数据提交时,post提交中文过去时处理数据时出现了乱码情况。

本人用的是jq版本是1.4.4 算是比较新的版本。在做页面中的ajax中有post有get,当数据量小的时候用get,数据量大的用post。
在提交数据格式如下:
当前页面编码 js    请求页面编码 中文乱码
gb2312 jquery ajax gb2312 是
gb2312 jquery ajax utf-8  否 
utf-8 jquery ajax  utf-8  否 
utf-8 jquery ajax  gb2312 是

1.在用get方式:
get方式提交过去的中文根本提交不过去,没有任何返回。
修改:在get方式提交时,中文压根都提交不过去,需要将编码转换。
举例:
$.get("forasp.cn.php",{"content":content},function(data){alert("网站制作学习网提醒返回数据:"+data);});
如果 content是中文内容,则提交返回该数据,返回为空。
修改一下:
$.get("forasp.cn.php",{"content":escape(content)},function(data){alert("网站制作学习网提醒返回数据:"+data);});
或者转www.载for网站制作学习asp必.cn究
$.get("forasp.cn.php",{"content":encodeUrl(content)},function(data){alert("网站制作学习网提醒返回数据:"+data);});
然后再在forasp.cn.php进行数据转码,php中的escape何unescape  http://www.forasp.cn/html/2262.html其他自行解决下。

2.在jquery的POST提交中文时,因为提交的数据较多所以使用post方式,当使用这种方式时,就得在接受页面直接转码了。
php举例 $content = iconv("utf-8","gbk",$_GET['content']); 这样就能将获取过来的。
或者 均为utf-8页面。即可。

总起来说在ajax乱码解决方法
1.保持页面一致,尽量使用utf-8格式
2.在ajax请求页面中用utf-8格式
3.如果不能用以上两种方法,则采用转码,一个是在提交前转码一个是在提交后内容转码。

建议一律用utf-8


%77w%77%2E%66%6F%72%61%73%70%2E%63%6E

·上一篇:Fckeditor火狐javascript获取内容 >>    ·下一篇:replace into >>
推荐文章
最新文章