博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery乱码终极解决方案
阅读量:6205 次
发布时间:2019-06-21

本文共 2055 字,大约阅读时间需要 6 分钟。

  今天闲的无聊,把以前遗留的问题解决一下,比如让人头痛的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表单数据全部为乱码状态,对于这种情况,大家按以上方法可以轻松解决。

 

 

以下是一些特别情况的问题总结,来源于网络:

JQuery Ajax提交出现中文乱码的解决办法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();

服务器端无需做其他处理: String priceName = request.getParameter("priceName");

转载于:https://www.cnblogs.com/liuxw/archive/2012/12/29/2839130.html

你可能感兴趣的文章
[NOI2004]郁闷的出纳员
查看>>
安装mysql-connector-python
查看>>
【C语言】15-预处理指令1-宏定义
查看>>
火鸡堂 对 基于云的胜利冲锋队 为了交项目干杯 的 Beta 产品测试报告
查看>>
DataTable.ImportRow()与DataTable.Rows.Add()的区别
查看>>
mysql操作
查看>>
JavaScript设计模式: 对象创建
查看>>
The Master of Science degree in Computer Scienc
查看>>
使用Docker镜像
查看>>
Web前端学习第十四天·fighting_JavaScript概述
查看>>
创建wifi热点---让手机共享笔记本网络
查看>>
通过判断自定义属性的值给出不同的样式
查看>>
SeaJS 模块化加载框架使用
查看>>
VMware Workstation 8安装CentOS 6字符界面
查看>>
print函数用法总结
查看>>
spring 整合redis
查看>>
会议论文重新投稿算不算侵权?这肯定是所多人都遇到过的问题(转)
查看>>
JBoss配置解决高并发连接异常问题(转)
查看>>
1.1线性方程组
查看>>
2013nanjingJ
查看>>