1. 程式人生 > >jQuery序列化亂碼解決

jQuery序列化亂碼解決

tool har cte logs cat erro con .net bar

query之提交序列化表單(serialize)及亂碼處理
1 提交亂碼處理
JSP文件聲明如下

[html] view plain copy
  1. <%@ page language="java" pageEncoding="UTF-8"%>
  2. <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

永久的處理方式:

修改jquery1.4.3.js源代碼解決:
找到:

  contentType: application/x-www-form-urlencoded

替換為:

  contentType: "application/x-www-form-urlencoded;charset=UTF-8"

要不然,每個請求前都要加

contentType: "application/x-www-form-urlencoded;charset=UTF-8"
$("#search_btn1").click(function(){  
            var submitData = $(‘#searchForm1‘).serialize();  
            alert(submitData);  
            $.ajax({  
                type: "POST",  
                dataType: "json",  
                contentType: "application/x-www-form-urlencoded;charset=UTF-8",  
                url: ‘${pageContext.request.contextPath}/jsonparam/getForm‘,  
                data: $(‘#searchForm1‘).serialize(),  
                success: function (data) {  
                    var f = data.success;  
                    if (data.success == true) {  
                        var retlist = data.result;  
                        alert(retlist.length);  
                      }  
                },  
                error: function(data) {  
                    alert("error:"+data.responseText);  
                 }  
      
            });  
    });  

2 從後臺返回中文字符串,前臺報錯或者為亂碼的處理

示例代碼:添加發送信息前添加頭部編碼:
response.setCharacterEncoding("UTF-8");
//response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("測試");
如果是用jQuery.form.js提交form所產生的亂碼:

找到這個jquery.form.js,將

[html] view plain copy
  1. var mp = ‘multipart/form-data‘;

修改成:

[html] view plain copy var mp = ‘multipart/form-data;charset=UTF-8‘; 使用$param的方法進行序列化的時候,是亂碼的話,修改jquery-1.4.4.min.js

先搜索到:param:function

將裏面的 encodeURIComponent改成

decodeURIComponent

jQuery序列化亂碼解決