当前位置: 代码迷 >> Web前端 >> jquery之交付序列化表单(serialize)及乱码处理
  详细解决方案

jquery之交付序列化表单(serialize)及乱码处理

热度:457   发布时间:2012-10-27 10:42:26.0
jquery之提交序列化表单(serialize)及乱码处理
一 序列化表单操作

1 $("form") 根据Element取到所有的form对象

2 $("#form1") 根据表单ID取到form对象

3 显示表单元素:
var fields  = $("form").serializeArray();
jQuery.each( fields, function(i, field){
  $("#results").append(field.value + " ");
});

选自jquery文档.

二 乱码处理
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

参考链接:
http://dev.firnow.com/course/1_web/javascript/jsjs/20090303/157078.html

2 从后台返回中文字符串,前台报错或者为乱码的处理
示例代码:
添加发送信息前添加头部编码:
response.setCharacterEncoding("UTF-8");
//response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("测试");
三 乱码处理二
jquery ajax乱码问题
http://songfantasy.iteye.com/blog/514440
我的设置:
1 工程编码,js,jsp,java设置为UTF-8
2 JSP页面编码:
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>

3 JS中处理
encodeURI(encodeURI(data))  ///注意两次编码!!
4 Java类中处理
response.setCharacterEncoding("UTF-8");		
//response.setContentType("text/html;charset=UTF-8");
//用于向页面输送中文字符串
java.net.URLDecoder.decode((String)request.getParameter("username"),"UTF-8");		

OK搞定!
  相关解决方案