`
simgsg
  • 浏览: 96089 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

GBK编码下jQuery Ajax中文乱码终极暴力解决方案

 
阅读更多
<p>哎,还是老话题,一直缠绕着国人……</p>
<p>现在来个快刀斩乱麻,let’s go<br>由于项目前期使用的是1.2.6版本,后期使用的是1.3.2版本,所以分开来讲;</p>
<p>说说实现的办法,有点暴力——直接修改jQury源码,不过不用担心,不会影响整体功能而且就修改几行代码就可以解决乱码,也就是在发送请求的时候把参数值再进行一次转码,修改的方法为<em><strong>param</strong></em></p>
<p></p>
<p>&lt;!--CTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt--&gt;&lt;!-- change this for your own feed url --&gt;1、jQuery <strong>1.2.6</strong> 乱码解决办法</p>
<ul>
<li>打开1.2.6版本的源文件 </li>
<li>找到第2911、2921、2924行,分别修改对应参数值的地方包裹一层encodeURIComponent即可,修改后的结果如下:
<div class="wp_syntax">
<div class="code"><textarea cols="70" rows="16" name="code" class="javascript">param: function( a ) {
  var s = [];

  // If an array was passed in, assume that it is an array
  // of form elements
  if ( a.constructor == Array || a.jquery )
   // Serialize the form elements
   jQuery.each( a, function(){
    s.push( encodeURIComponent(this.name) + "=" + encodeURIComponent(encodeURIComponent( this.value )) );
   });

  // Otherwise, assume that it's an object of key/value pairs
  else
   // Serialize the key/values
   for ( var j in a )
    // If the value is an array then the key names need to be repeated
    if ( a[j] &amp;&amp; a[j].constructor == Array )
     jQuery.each( a[j], function(){
      s.push( encodeURIComponent(j) + "=" + encodeURIComponent(encodeURIComponent( this )) );
     });
    else
     s.push( encodeURIComponent(j) + "=" + encodeURIComponent(encodeURIComponent( jQuery.isFunction(a[j]) ? a[j]() : a[j] )) );

  // Return the resulting serialization
  return s.join("&amp;").replace(/%20/g, "+");
}
</textarea></div>
</div>
</li>
</ul>
<p class="wp_syntax">
</p>
<div class="code">下载:<a title="版本:1.2.6,类别:[jQuery],描述:为GBK乱码问题修改的1.2.6版本" href="http://www.wsria.cn/wordpress/wp-content/plugins/download-monitor/download.php?id=19">jquery-encode-gbk.1.2.6.js</a> <br>下载:<a title="版本:1.2.6,类别:[jQuery],描述:压缩过的版本1.2.6,解决GBK乱码问题" href="http://www.wsria.cn/wordpress/wp-content/plugins/download-monitor/download.php?id=21">jquery-encode-gbk.pack.1.2.6.js</a> </div>

<p></p>
<p>2、jQuery <strong>1.3.2 </strong>乱码解决办法</p>
<p>1.3.2的就不用这么麻烦了,因为这个版本简化了param方法的结构,只需要修改一行代码即可,因为只有一个地方转码了</p>
<p>找到第3737行,同样包裹一层encodeURIComponent,结果如下:</p>
<p><textarea cols="76" rows="9" name="code" class="javascript">param: function( a ) {
  var s = [ ];

  function add( key, value ){
   s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(encodeURIComponent(value));
  };
</textarea></p>
<div class="wp_syntax">
<div class="code">下载:<a title="版本:,类别:[jQuery],描述:为GBK乱码问题修改的1.3.2版本" href="http://www.wsria.cn/wordpress/wp-content/plugins/download-monitor/download.php?id=20">jquery-encode-gbk-1.3.2.js</a> <br>下载:<a title="版本:1.3.2,类别:[jQuery],描述:压缩过的版本1.3.2,解决GBK乱码问题" href="http://www.wsria.cn/wordpress/wp-content/plugins/download-monitor/download.php?id=22">jquery-encode-gbk-.pack.1.3.2.js</a> </div>
</div>
&lt;!-- 雅虎流量统计 结束--&gt;
分享到:
评论

相关推荐

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

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

    jquery的ajax编码乱码解决方案

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

    Ajax中文乱码问题解决方案

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

    jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)

    总结来说,这个终极解决方案实际上是在GBK编码环境下,通过修改jQuery内部编码行为,来实现AJAX提交的数据以原生GBK编码形式传输,从而避免了字符编码问题。这为在GBK编码环境下进行AJAX提交提供了有效的解决方法,...

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

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

    jQuery中文乱码

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

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

    本文将深入探讨如何使用"escape"函数以及相关的编码策略来解决AJAX和JS传中文乱码的问题。 首先,我们需要理解AJAX(异步JavaScript和XML)的工作原理。AJAX允许网页在不重新加载整个页面的情况下与服务器交换数据...

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

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

    JQuery AJAX 中文乱码问题解决

    解决方案:  提交和接收均为utf-8或gbk编码  对提交的数据调用JQuery函数encodeURI进行编码再提交或显示或链接既可  url = encodeURI(url); //url为数据。  注:注意浏览器和发布的项目的缓存问题,很多时候会...

    AJAX中文乱码总结

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

    ajax中文乱码的各种解决办法总结

    总的来说,解决Ajax中文乱码问题的关键在于保持前端、后端以及数据库之间的编码一致性。通过正确设置请求和响应的编码,以及在必要时进行编码转换,可以有效防止中文乱码的出现。在实际开发中,应始终关注字符集的...

    ajax乱码解决办法

    "ajax乱码解决办法"这个主题正是针对这类问题提供解决方案。 首先,我们需要理解Ajax请求中的乱码问题通常源于以下几个方面: 1. **服务器编码设置**:服务器返回的数据可能是以特定的字符编码格式(如GBK或UTF-8...

    jquery uploadify scriptData 中文乱码

    1. **字符编码问题**:Uploadify与服务器之间通信时,如果双方没有统一的字符编码,例如一个使用UTF-8,另一个使用GBK,那么当传输包含中文字符的数据时,就可能导致乱码。 2. **HTTP头部设置**:HTTP请求中的...

    jquery ajax post提交数据乱码

    其中,UTF-8是国际上通用的编码方式,能够表示几乎所有的字符,包括多种语言的字母,而GBK和GB2312则主要针对中文字符。 知识点二:GET与POST方法的区别 HTTP协议提供了多种方法来传输数据,其中GET和POST是最常用...

    AJAX在Post中文的时候解决乱码的方法

    ### AJAX在POST中文时解决乱码的方法 #### 一、问题背景 在使用AJAX进行数据请求时,尤其是在处理中文字符的过程中,经常会遇到一个常见问题:即通过AJAX请求得到的`responseText`中的中文字符出现乱码。这个问题...

    JQuery中Ajax的Post提交在IE下中文乱码的解决方法

    本文将深入探讨如何解决在IE浏览器下使用JQuery的Ajax POST提交时出现的中文乱码问题。 首先,我们需要理解问题的背景。在JQuery的Ajax POST请求中,当尝试向服务器发送包含中文字符的数据时,这些数据在Firefox和...

    jquery字符编码转换[文].pdf

    `jQuery`是一个广泛使用的JavaScript库,它在与服务器进行异步通信(Ajax)时,可能会遇到编码不匹配的问题,特别是在GBK编码环境下。GBK是中国大陆广泛采用的汉字编码标准,而UTF-8是国际上更通用的编码格式。 当...

    如何解决JQuery ajaxSubmit提交中文乱码

    在Web开发过程中,使用JQuery的ajaxSubmit方法进行表单提交时,中文乱码问题是一个常见的困扰。中文乱码问题通常发生在数据的提交和接收过程中,由于字符编码的不一致导致。为了解决这个问题,首先需要了解JQuery的...

    jquery14.1chm、jquery1.3.2vs2008中文版智能提示

    "jquery1.3.2vs2008中文版智能提示"就是为了解决这个问题,它提供了在VS2008中使用jQuery时的中文智能感知功能。这意味着在编写代码时,IDE会自动显示与jQuery相关的函数和参数提示,提高了编码效率和准确性,减少了...

Global site tag (gtag.js) - Google Analytics