jQuery序列化亂碼解決
阿新 • • 發佈:2017-07-30
tool har cte logs cat erro con .net bar
query之提交序列化表單(serialize)及亂碼處理
1 提交亂碼處理
JSP文件聲明如下
- <%@ page language="java" pageEncoding="UTF-8"%>
- <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- 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序列化亂碼解決