`
flycomos.lee
  • 浏览: 280655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

修改JQUERY源码彻底解决AJAX传递中文后台乱码现象

阅读更多

许多人在使用JQuery.ajax方法时肯定会遇到一个问题。在编码不是UTF-8的时候,当传递的参数里有中文的时候,服务端Request的 时候都会出现乱码。本人最近也遇到了需要传递中文参数的问题。在网上搜索一下,复制粘贴发的到处都是的“终极”“解决方案”无非就是 escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去。

 

我很久以前一直在使用Prototype框架。在.net-GB2312或jsp-utf8下都使用过,从来没遇到有字符编码的问题。于是将Prototype和JQuery代码都下载下来打开研究原因。具体结果如下

diyblPic

 

不同之处在于JQuery默认的contentType:application/x-www-form-urlencoded

而Prototype则是contentType:application/x-www-form-urlencoded; charset=UTF-8

这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1

ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。

JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。

而我们的UTF-8则可以解决这一问题。

 

最终指需要修改JQuery的代码,显式声明contentType使用utf-8字符集,即可解决GB2312中文传递的问题。

修改如图:

diyblPic

 

只需要简单的将JQuery的代码加以修改,加上charset=UTF-8就可以了,这样不需要改变改什么web.config或什么在页面中改编码什么的了,也不需要用escapc(str)再在服务端解码。英文怎么传递,中文也怎么传递。

 

 

 

 

用了之后发现还是不行,郁闷 ,我就用了如下方法,成功了!

前台JSP:

var shopName = document.getElementById("shopName").value ;
       var shopLocation = document.getElementById("shopLocation").value ;
       var furl = "updateShop.jsp?shopName="+shopName+"&shopLocation="+shopLocation+"&lat="+lat+"&lng="+lng+"" ;
       furl = encodeURI(furl);
       furl = encodeURI(furl);

 

后台:

String shopName = request.getParameter("shopName");
                String shopLocation = request.getParameter("shopLocation");
               
                shopName = java.net.URLDecoder.decode(shopName,"UTF-8");
                shopLocation = java.net.URLDecoder.decode(shopLocation,"UTF-8");

 

OK!!!

分享到:
评论
2 楼 lifei6671 2011-08-23  
是啊,还是用了编码!
1 楼 lifei6671 2011-02-16  
这么说来你还没有彻底解决啊。也是用了编码转换!

相关推荐

    GBK编码下jQuery_Ajax中文乱码解决方案

    通过对jQuery源码的简单修改,可以在GBK编码环境下有效解决Ajax请求中出现的中文乱码问题。这种方式虽然简单粗暴,但对于快速解决问题来说是十分有效的。然而,在实际应用中还需要根据具体情况选择合适的解决方案,...

    jquery+ajax无刷新评论源码

    jquery+ajax无刷新评论源码 实现了获取评论无刷新,发表评论无刷新,页面获取评论时显示loading加载效果 jquery真的是一个非常优秀的JS库,简单容易掌握,对于网页中的多级菜单、级联效果、Tab选项卡切换、图片...

    jquery fileupload上传百分比 JAVA版解决中文乱码

    总的来说,解决jQuery File Upload在Java环境下的中文乱码问题,主要在于前端设置合适的字符集,并在后端正确地解码。在实际项目中,还需要考虑其他因素,如文件大小限制、并发上传处理、错误处理等。理解并掌握这些...

    真正的JQuery.ajax传递中文参数的解决方法

    1. **修改jQuery源码**:直接在jQuery的ajax设置中添加`charset=UTF-8`,使其与Prototype保持一致。但这不是最佳实践,因为直接修改库的源码可能会影响到其他功能,并且在更新库版本时可能会丢失修改。 2. **设置...

    AJAX中文乱码总结

    本篇文章将对AJAX中文乱码问题进行深入探讨,并提供解决策略。 1. 乱码产生的原因 - 数据编码不一致:服务器返回的数据编码与前端页面的编码格式不一致,比如服务器使用UTF-8,而前端页面使用GBK。 - AJAX请求...

    jsp的ajax例子源码下载

    【描述】:“解决了乱码问题”意味着在开发或运行过程中,源代码针对字符编码可能出现的不匹配或处理不当进行了优化,确保了在AJAX请求和响应中中文字符能够正确显示,避免了乱码的出现。这通常涉及到HTTP头信息的...

    ajax

    **Ajax(Asynchronous JavaScript and XML)**是一种在无需...通过以上分析,我们可以了解到Ajax的核心概念、工作原理以及解决中文乱码问题的方法。在实际开发中,结合各种工具和库,可以更高效地实现网页的异步交互。

    j2ee21:ajax01:get提交、post提交(完成用户名搜索),两者的区别(中文乱码问题、缓存问题)

    在本教程中,我们将深入探讨AJAX中的GET和POST提交方式,并解决它们在处理中文乱码和缓存问题时可能出现的挑战。 首先,让我们了解GET和POST的基本概念: 1. GET提交:GET是HTTP协议中最常见的请求方法,它将参数...

    Ajax中文问题

    在标签中提到的“源码”和“工具”,可能是指在解决Ajax中文问题时,需要查看和分析服务器端的源代码,以及可能使用到的调试工具,如Chrome开发者工具、Firefox的Web Console等,这些工具可以帮助我们跟踪网络请求,...

    基于jQuery实现扑克牌读心术游戏源码.zip

    《基于jQuery实现扑克牌读心术游戏源码》是一款利用JavaScript库jQuery开发的互动小游戏,旨在展示前端技术在游戏开发中的应用。这个游戏的核心是通过用户的交互和JavaScript的动态计算,模拟一种“读心术”,让玩家...

    jQuery学习记录----页面缓存和中文处理(三)

    在本篇jQuery学习记录中,我们将探讨两个关键的前端开发问题:页面缓存与中文处理。这两个主题在构建高效、用户友好的Web应用时都起着至关重要的作用。 首先,让我们深入了解页面缓存。在Web应用中,缓存是一种优化...

    jQuery常见问题及用法

    jQuery是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。本文将深入探讨jQuery的常见问题及其解决方案,帮助开发者更好地理解和应用jQuery。 1. **IE浏览器下的...

    java资料夹

    2. **JQuery.ajax传递中文参数乱码的解决方法.txt** - 在发送Ajax请求时,如果数据包含中文字符,可能会出现乱码问题。这通常是因为字符编码不一致导致的。解决方法包括确保请求体和响应体的字符集统一,如设置...

    以\"对象\"方式接收json数据.(解决乱码问题)

    例如,如果你在使用jQuery(压缩包文件中的`jquery.js`),可以使用`$.ajax()`或`$.getJSON()`方法,它们默认处理UTF-8编码。如果需要自定义编码,可以通过配置`xhrFields`或`contentType`参数来实现。 ```...

    jquery 动态表格

    由于提供的文件内容不包含有关“jquery 动态表格”的具体信息,而是出现了一系列特殊字符和乱码,所以无法直接提取关于“jquery 动态表格”的知识点。但是,根据标题“jquery 动态表格”,可以推断出需要讲解的内容...

    【中文】【Ajax In Action】【(PDF)(2.48MB)】

    虽然提供的部分文本似乎包含了一些非相关信息(可能是排版错误或乱码),但我们仍可以从已有的信息中提取出一些关于Ajax的重要知识点。 ### Ajax简介 Ajax(Asynchronous JavaScript and XML)是一种创建交互式...

    struts2乱码与json插件(1)

    在这个主题中,“struts2乱码与json插件”主要关注两个方面:字符编码问题和JSON数据交互。 **字符编码问题** 在开发web应用时,乱码问题经常出现,尤其是在处理用户输入或显示非ASCII字符时。Struts2框架默认使用...

    java财务系统源代码

    系统简介: 1、实现了用户、组管理 2、实现了物品类别、详细管理 3、实现了基本账务(货币)管理 开发此系统的初衷在于学习技术...3、数据库版本为mysql5.0 4、编码:为防止ajax乱码,所以项目、数据库全部使用UTF-8编码

    Ajax的编码问题总结(2)

    在处理中文字符时,可能会遇到编码解码问题,如乱码。确保服务器和客户端使用相同的字符编码(如UTF-8)是关键,同时在发送请求和接收响应时正确设置Content-Type头。 3. **错误处理**: 在编写Ajax代码时,必须...

Global site tag (gtag.js) - Google Analytics