`

JQuery AJAX提交中文出现乱码的解决方案 -jquery ajax

阅读更多
JQuery是一个非常优秀的框架,在特定场合下使用JQuery提交数据,相当的方便快捷。 但是,在处理一个GB2312编码的网站BJBX提交时,中文数据却成了乱码。

  现象如下:

  1)在Firefox下,处理页面的编码为gb2312,提交数据没有问题,中文能够正确解析;

  2)在IE8下,处理页面的编码为gb2312,提交中文数据出现乱码。

  无论是$.post还是$.ajax,抑或$.ajaxSubmit(来自于Form插件),在之前的UTF-8编码的网站都没有出现过任何问题, 看来是由于提交数据的网页的编码格式造成的了。不管怎么样,既然是浏览器之间存在差异,还是从HTTP包来看有什么问题吧。

  打开Fiddle,分别用Firefox和IE做一个BJBX提交(以用户登录为例),检查他们的HTTP头,发现

  1)两个浏览器提交的Form数据是一致的,都是进行了UTF-8的编码,如下图所示。

  

  分析:JQuery的BJBX提交,会将要提交的数据进行编码,使用encodeURIDomponent在js中处理数据。因此,无论是 Firefox或者IE,提交的数据都是一致的,都是UTF-8编码后的数据。

  2)查看Header,发现Entity中的Dontent-Type存在差异

  在Firefox中,Dontent-Type指定了字符集为utf-8。

  

  而在IE8中,却没有任何的字符集指定。

  

  分析:显然,默认情况下,BJBX的异步提交的字符编码应该和网页本身保持一致,也就是说,Server端在没有发现显示的charset指定的情 况下,使用gb2312来解码数据(但是数据在提交前已经被UTF-8编码了),这就是为什么在IE下会出现乱码的根源,而在Firefox下,浏览器在 提交BJBX数据的时候,加上了charset的显示指定,导致Server端采用UTF-8来解码数据(正确解码)。

推断:看来要解决这个中文乱码问题,就必须给BJBX异步提交指定显 示的charset!

马上查阅JQuery的BJBX工具函数的说明,发现options中有一个指定content-type的参数,给我的BJBX代码加上:
$.ajax({
url:'${SERVELET_PATH }/harbormil.do',
data:{method:'search',qsg:qsg,zdg:zdg},
contentType:"application/x-www-form-urlencoded; charset=utf-8",
success:function(data){
}});


分享到:
评论

相关推荐

    JQuery AJAX提交中文乱码的解决方案

    总结来说,解决JQuery AJAX提交中文乱码问题的关键在于确保客户端和服务器端字符编码的一致性。可以通过在AJAX请求中显式地设置字符集为UTF-8来解决,从而让服务器端能够正确地解码请求中的中文字符。这不仅适用于GB...

    jquery的ajax编码乱码解决方案

    简单整理的乱码处理方案,jquery的ajax解决UTF-8以及GBK的问题

    jquery+asp ajax 中文乱码问题解决文档

    ### jQuery + ASP AJAX 中文乱码问题解决方案 在开发基于jQuery和ASP的Web应用程序时,中文乱码问题可能成为困扰开发者的一大难题。特别是在使用Ajax进行前后端数据交互时,中文字符可能会出现乱码现象,影响用户...

    Ajax中文乱码问题解决方案

    本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...

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

    ### GBK编码下jQuery_Ajax中文乱码解决方案 #### 背景介绍 在Web开发过程中,使用Ajax技术与服务器端交互数据时经常会遇到字符集编码的问题,尤其是在使用GBK编码的环境中,通过jQuery发起的Ajax请求往往会导致...

    Asp中用法JQuery的AJAX提交中文乱码解决方法_.docx

    AJAX提交中文乱码解决方法在Asp中使用JQuery AJAX(Asynchronous JavaScript and XML)是一种异步请求数据的技术,用于实现网页的局部刷新,而不需要重新加载整个网页。然而,在使用AJAX时,中文乱码问题经常会出现...

    jQuery中文乱码

    ### jQuery中文乱码完美解决方案 在处理Web应用中,尤其是涉及到多语言环境时,中文乱码问题时常困扰着开发者。本文将深入探讨jQuery在处理中文数据时遇到的乱码问题,并提供一系列有效的解决方案。 #### 一、理解...

    jQuery Ajax过滤器

    本文将深入探讨jQuery中的Ajax过滤器及其在Ajaxform表单提交中的应用,以及如何解决可能出现的乱码问题。 首先,让我们理解什么是jQuery Ajax过滤器。在jQuery中,`ajaxSend`、`ajaxComplete`、`ajaxSuccess`、`...

    ajax提交乱码

    在IT领域,特别是Web开发中,遇到“Ajax提交乱码”的问题是非常常见的,尤其是在处理中文或其它非英文字符集时。根据给定的文件信息,我们可以深入探讨如何使用Jquery来解决这一问题。 ### Ajax提交乱码问题的本质 ...

    jquery ajax post提交数据乱码

    在开发Web应用时,我们经常会遇到编码问题,尤其是在使用jQuery的AJAX功能进行数据交互时。...通过以上措施,可以有效地避免和解决AJAX提交数据时可能出现的乱码问题,提高Web应用的兼容性和用户体验。

    jQuery ajax方法传递中文时出现中文乱码的解决方法

    通过以上步骤,大部分情况下可以有效解决jQuery AJAX请求中的中文乱码问题。然而,每个环境和服务器配置可能略有不同,所以可能需要根据实际情况进行调整。了解这些基础知识后,开发者就能更好地应对类似问题,保证...

    JQuery AJAX 中文乱码问题解决

    解决JQuery AJAX中文乱码问题的步骤如下: 1. **设置请求编码**:在发送AJAX请求时,确保请求头中的`Content-Type`设置为`application/x-www-form-urlencoded;charset=UTF-8`。对于JQuery,你可以这样做: ```...

    jquery自动补全示例。包括后台,中文乱码解决JS

    **jQuery自动补全插件详解**...结合静态前台示例、中文乱码解决方案以及各种配置选项,开发者可以轻松地为项目添加这一实用特性。在实际应用中,还需要考虑性能优化、用户体验提升等多方面因素,以确保最佳的使用效果。

    java认证_Ajax中文乱码问题及解决方法.doc

    【Java认证:Ajax中文乱码问题及解决方法】 在Java Web开发中,使用Ajax进行异步数据交互时,经常会遇到中文乱码的问题。这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的...

    Asp中使用JQuery的AJAX提交中文乱码解决方法

    在使用Asp进行Web开发过程中,通过JQuery的AJAX方法提交表单数据时,中文字符很...通过上述方法,我们可以有效地解决在Asp中使用JQuery的AJAX提交中文时出现的乱码问题,并确保Web应用能够稳定、正确地处理中文字符。

    jQuery Ajax传值到Servlet出现乱码问题的解决方法

    本文将详细解释如何解决jQuery Ajax向Servlet传递参数时出现的乱码问题。 首先,我们需要理解乱码产生的原因。乱码通常发生在以下几个环节: 1. **JSP页面的编码设置**: JSP页面的编码至关重要,确保它正确地...

    escape --AJAX和JS传中文乱码的最终解决方案

    在开发Web应用时,我们经常会遇到一个棘手的问题:AJAX和JavaScript在处理中文字符时出现乱码。这是因为浏览器、服务器以及数据编码之间的不匹配所导致的。"escape"函数在JavaScript中扮演着重要的角色,它可以帮助...

    Ajax乱码解决方案

    ### Ajax乱码解决方案 在进行Ajax开发的过程中,经常会遇到数据编码问题导致的乱码现象。这类问题虽然看似简单,但若处理不当,则可能耗费大量时间进行调试与解决。本文将结合一个具体的案例来探讨如何有效地解决...

    jquery ajax传递中文参数乱码问题及解决方法说明

    在使用jQuery的Ajax功能进行数据交互时,可能会遇到中文参数乱码的问题。这通常是由于服务器与客户端之间...遵循以上步骤,可以有效地避免`jQuery Ajax`在传递中文参数时出现的乱码问题,保证数据的正常传输和解析。

Global site tag (gtag.js) - Google Analytics