jquery乱码与contentType属性设置问题解决方案
2023-06-13 09:14:43 时间
今天闲的无聊,把以前遗留的问题解决一下,比如让人头痛的Jquery乱码问题。其实这方面文章已经很多了,但全面解决各种问题的很少,今天总结一下,方便自己也方便大家。
原因很简单:其实他的中文乱码就是因为contentType没有指定编码,对于不同Jquery的版本中这个地方有不同的设置,就拿我遇到的,jquery-1.6.1和jquery-1.8.3就有不同的定义。
解决办法:在jquery-1.6.1文件中,搜索"contentType"然后在application/x-www-form-urlencoded后面加上;charset=UTF-8最终变成contentType:"application/x-www-form-urlencoded;charset=UTF-8"即可。
这样通过post方法提交后会出现乱码的问题就可以完美解决。
如果还有乱码现象,只能说你接收页面的编码也有问题,这是由于异步对象XMLHttpRequest在处理返回的responseText的时候,是按UTF-8编码进行解码的。所以post方式的话,必须把这个页面另存一下,将页面文件的编码改为UTF-8(请务必记住)。
没修改前,整个FROM表单数据全部为乱码状态,对于这种情况,大家按以上方法可以轻松解决。
以下是一些特别情况的问题总结,来源于网络:
JQueryAjax提交出现中文乱码的解决办法2
前使用Jquery的时候一直没有发现,用Ajax提交的时候会出现乱码,我猜测可能是因为编码的原因
可能存在以下几点原因:
1.HTML的编码不统一:如页面用的GB2312,好像JQuery对它支持不太好。以前我一直都是用UTF-8的,一直都没有发现;
2.文件的编码,这个不好在表面上看到,简体中文版的操作系统存的文本格式的文件默认是GB2312,建议把文件换成UTF-8格式的
最简单的解决办法,把提交的中文文本用JS的escape处理一下,就不会现出现乱码了。
如:
复制代码代码如下:
原因很简单:其实他的中文乱码就是因为contentType没有指定编码,对于不同Jquery的版本中这个地方有不同的设置,就拿我遇到的,jquery-1.6.1和jquery-1.8.3就有不同的定义。
解决办法:在jquery-1.6.1文件中,搜索"contentType"然后在application/x-www-form-urlencoded后面加上;charset=UTF-8最终变成contentType:"application/x-www-form-urlencoded;charset=UTF-8"即可。
这样通过post方法提交后会出现乱码的问题就可以完美解决。
如果还有乱码现象,只能说你接收页面的编码也有问题,这是由于异步对象XMLHttpRequest在处理返回的responseText的时候,是按UTF-8编码进行解码的。所以post方式的话,必须把这个页面另存一下,将页面文件的编码改为UTF-8(请务必记住)。
没修改前,整个FROM表单数据全部为乱码状态,对于这种情况,大家按以上方法可以轻松解决。
以下是一些特别情况的问题总结,来源于网络:
JQueryAjax提交出现中文乱码的解决办法2
前使用Jquery的时候一直没有发现,用Ajax提交的时候会出现乱码,我猜测可能是因为编码的原因
可能存在以下几点原因:
1.HTML的编码不统一:如页面用的GB2312,好像JQuery对它支持不太好。以前我一直都是用UTF-8的,一直都没有发现;
2.文件的编码,这个不好在表面上看到,简体中文版的操作系统存的文本格式的文件默认是GB2312,建议把文件换成UTF-8格式的
最简单的解决办法,把提交的中文文本用JS的escape处理一下,就不会现出现乱码了。
如:
//保存数据
$.ajax({
url:"/guide/savecomments.aspx",
type:"POST",
dataType:"json",
data:"Action=SaveComment&CommNickName="+escape(CommNickName.val())+"&CommContent="+escape(CommContent.val())+"&GuideID="+GuideID.val()+"&ScoreLogType=<%=ScoreLogType%>",
success:function(results){
alert(results.message);
-------------------------------------------------------------------------------
解决的办法上用js的编码函数encodeURIComponent(string)处理一下,把中文"王晓明"编码成"%E7%8E%8B%E6%99%93%E6%98%8E",就OK了。
顺便说一下,我的tomcat下的URIEncoding=UTF-8
-------------------------------------------------------------------------------
今天在使用jquery检测用户名的时候,对英文和数字的用户名检测正确,但是对中文的时候,检测出错,经过在网上查询一段时间,终于找到了原因,是乱码问题,解决方法:
1、只要在ajax中有数据提交时,如果页面编码不是utf-8的,都应该对提交的数据进行编码,js的编码函数为escape()
2、在服务器端页接收数据后进行解码,然后对数据进行相关的处理后再编码
3、返回到客户端后再解码
4、如果没有提交数据,而是直接从服务器端获取数据,那直接在服务器页面设置Response.Charset="gb2312"即可,不用再编码解码
vbscript中分别对应js中的escape()和unescape()函数程序代码
-------------------------------------------------------------------------------
通过以下处理方式得到解决:
传递参数的时候对参数进行编码priceName="encodeURI(priceName)",也可以用encodeURIComponent();
服务器端无需做其他处理:StringpriceName=request.getParameter("priceName");
相关文章
- jquery回车监听事件及html自定义属性的应用
- jquery选择器用法_jQuery属性选择器
- 引入JS文件和JQuery
- jquery遍历表格,以及遍历radio,使用iCheck设置radio选中详解编程语言
- jQuery幻灯片插件Skippr详解编程语言
- jQuery图片切换插件jquery.cycle.js详解编程语言
- jQuery属性选择器详解
- jQuery attr()方法获取和设置属性
- jQuery width()和height()方法的用法
- jQuery is()方法的使用
- jquery学习之二属性(html()与html(val))
- jquery图片上传按比例预览插件集合
- 40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
- jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
- jquery自定义属性(类型/属性值)
- html5的自定义data-*属性和jquery的data()方法的使用示例
- UpdatePanel和jQuery不兼容局部刷新jquery失效
- jquery中交替点击事件的实现代码
- jquery动态改变form属性提交表单
- jQuery实现购物车多物品数量的加减+总价计算
- jQuery学习笔记之jQuery原型属性和方法
- jquery新建的元素事件绑定问题解决方案
- jQuery中attr()和prop()在修改checked属性时的区别
- jQuery修改class属性和CSS样式整理