jquery乱码与contentType属性设置问题解决方案

今天闲的无聊,把以前遗留的问题解决一下,比如让人头痛的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");

(0)

相关推荐

  • jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码

    本例用到其他2个php class.upload.php和 functions.php还有css和js以及img文件 完整实例代码点击此处本站下载. 效果图如下: 实现代码如下: JavaScript代码如下: 复制代码 代码如下: <script type="text/javascript">  $(document).ready(function() {      $("#filelist").niceScroll({          cursor

  • 用asp实现网页调用doc附Response.ContentType 详细列表

    微软有篇文章:http://support.microsoft.com/kb/193998/zh-cn,用doc读取和显示二进制数据,<怎样读取二进制文件>,没测试,懒得编译dll    asp程序:    <%            response.buffer=true            response.contenttype="application/x-msexcel"            dim   vntstream            set

  • 让手机访问WAP网站服务器 IIS WAP服务器的MIME类型设置

    如果你的电脑,WEB服务器是IIS IIS--默认网站属性-->http 头-->MIME映射 -->文件类型 -->新类型 .wml text/vnd.wap.wml .wmlc application/vnd.wap.wmlc .wmls text/vnd.wap.wmlscript .wmlsc application/vnd.wap.wmlscriptc .wbmp image/vnd.wap.wbmp 如果你的电脑,WEB服务器是Apache Apache安装目录下的co

  • response.setContentType()的作用及MIME参数详解

    response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据. 例如web浏览器就是通过MIME类型来判断文件是GIF图片.通过MIME类型来处理json字符串. Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,可以参考. response.setContentType("text/html; charset=utf-8"); html .setC

  • http图片上传安全性问题 根据ContentType (MIME) 判断其实不准确、不安全

    图片上传常用的类型判断方法有这么几种---截取扩展名.获取文件ContentType (MIME) .读取byte来判断(这个什么叫法来着?).前两种都有安全问题.容易被上传不安全的文件,如木马什么的.第1种截取文件扩展名来判断的方法很明显不安 全,第2种ContentType MIME可以伪造,所以用ContentType来判断其实也不安全.建议采用第3种. C#演示: 1.截取扩展名来做判断,不可取. if (Request.Files.Count > 0) { //这里只测试上传第一张图片

  • asp.net 下载文件时根据MIME类型自动判断保存文件的扩展名

    引言 用WebClient下载远程资源时,经常会遇到类似这样的网址: http://www.uushare.com/filedownload?user=icesee&id=2205188 http://www.guaishow.com/u/luanfujie/g9675/ 我们不知道这个Url具体代表的是一个网页,还是某种类型的文件. 而有些Url虽然带有扩展名,但可能是错误的扩展名,常见的比如把gif文件标上了jpg扩展名. 如果我们没法正确判断下载源的文件类型的话,就无法保存为正确的文件格式

  • IIS自定义MIME类型的步骤

    单击[开始]→[程序]→[管理工具]→[IIS管理器],逐步展开"本地计算机"."网站",在你的网站上右击,选择[属性],单击"HTTP头"选项卡→单击"MIME类型"按钮,再单击"新建"按钮,在"扩展名"框内输入".flv","MIME类型"框中输入"flv-application/octet-stream",然后确定即可.&

  • 基于C# winform实现图片上传功能的方法

    本文所述实例实现将一张图片上传到指定的文件夹,然后在窗体上的PictrueBox控件中显示出来. 具体功能代码如下: private void btnUpload_Click(object sender, EventArgs e) { //创建一个对话框对象 OpenFileDialog ofd = new OpenFileDialog(); //为对话框设置标题 ofd.Title = "请选择上传的图片"; //设置筛选的图片格式 ofd.Filter = "图片格式|*

  • yii实现图片上传及缩略图生成的方法

    本文实例讲述了利用yii框架来实现图片上传功能并在上传成功之后自动生成缩略图的方法,分享给大家供大家参考.具体实现方法如下: Action文件: 复制代码 代码如下: <?php /**  * TestController.php  * Created on: 2014-1-26 12:59:36 by Outsider  */ class TestController extends CController {       /**      * 缩略图片生成      * @ path 图片路

  • html 的 ContentType 小结

    ContentTypes : "ez","application/andrew-inset" ContentTypes : "hqx","application/mac-binhex40" ContentTypes : "cpt","application/mac-compactpro" ContentTypes : "doc","application/m

  • WIN2003中使用IIS配置手机下载类WAP网站的MIME类型介绍

    下面我就针对win2003为大家介绍一下WAP站点的安装 让IIS服务器 可以支持sis.SISX.3GP.ADP.AMR.JAD.JAR.MMF.MFM.PMD.UMD等文件下载 Windows2003 服务器配置IIS的MIME类型 打开Internet 服务管理器Internet 服务管理器-->网站属性-->HTTP头(MIME映射)-->新建 添加下列内容类型(MIME) 关联扩展名 text/vnd.wap.wml wml image/vnd.wap.wbmp wbmp te

  • php多个文件及图片上传实例详解

    本文实例讲述了php多个文件及图片上传的方法.分享给大家供大家参考.具体实现方法如下: 多个文件上传是在单文件上传的基础上利用遍历数组的方式进行遍历表单数组然后把文件一个个上传到服务器上了,下面就来看一个简单多个文件上传实例 多个文件上传和单独文件上传的处理方式是一样的,只需要在客户端多提供几个类型为"file"的输入表单,并指定不同的"name"属性值.例如,在下面的代码中,可以让用户同时选择三个本地文件一起上传给服务器,客户端的表单如下所示: 复制代码 代码如下

  • asp.net下Response.ContentType类型汇总

    在ASP.NET中使用Response.ContentType="类型名";来确定输出格式 'ez' => 'application/andrew-inset',  'hqx' => 'application/mac-binhex40',  'cpt' => 'application/mac-compactpro',  'doc' => 'application/msword',  'bin' => 'application/octet-stream', 

  • 下载站mime属性设置(让文件可下载)

    一般软件下载 .torrentapplication/octet-stream .7zapplication/octet-stream .isoapplication/octet-stream 手机相关类型: .apkapplication/vnd.android.package-archive .dedapplication/vnd.iphone .dmg application/octet-stream .ipaapplication/vnd.iphone .app application/

  • jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享

    网页端 裁剪图片,不需要经过服务器. 这个是用 https://github.com/mailru/FileAPI 框架实现的.配合jcrop. 高级浏览器 使用 canvas 裁剪,ie6 7 8使用 flash过度. 核心代码: var el = $('input').get(0); seajs.use(['gallery/jcrop/0.9.12/jcrop.css','gallery/jcrop/0.9.12/jcrop.js'] ,function(){ FileAPI.event.o

  • 自己动手打造ajax图片上传(网上没有的)

    今天笔者需要一款图片上传插件,但是网上没有提供一款符合自己需求且好用的.于是就自己动手写了一个. 方法1,仅使用jquery代码,不用第三方插件.代码如下 <p> <label>上传图片</label> <input class="ke-input-text" type="text" id="url" value="" readonly="readonly" /&g

  • Mime类型与文件后缀对照表

    方便iis中或其他服务器对相应的文件进行解析 有一些格式上传后无法下载或访问,需要设置MIME, 在主机管理>管理>设置MIME,里添加,比如.flv就需要设置后才能访问 文件后缀 MIME 备注 *.avi video/x-msvideo 视频文件 *.aif *.aiff *.aifc audio/x-aiff 声音文件 *.au *.snd audio/basic 声音文件 *.ai *.eps *.ps application/postscript   *.asd *.asn appl

随机推荐