日期:2014-05-16  浏览次数:20303 次

用jquery提交表单出现中文乱码如何解决
HTML code
<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>




<meta http-equiv="Content-Type" content="text/html; charset=GBK" />



HTML code
 <input type="hidden" name="userId" value="<%=request.getParameter("userId")%>">
   <input type="hidden" name="name" value="<%=request.getParameter("userName")%>">
     <tr><td colspan="2">管理员ID:<%=request.getParameter("userId")%>
      管理员姓名:<%=new String(request.getParameter("userName").getBytes("ISO-8859-1"),"GBK")%></td></tr>


HTML code
管理员姓名:<%=new String(request.getParameter("userName").getBytes("ISO-8859-1"),"GBK")%></td></tr>[/
上面这一行可以正常显示中文

用的是
JScript code
 $.ajax({
   url:'<%=basePath%>test/cityUserAction!saveAccess.action'
   ,type:'POST'
   ,data:$(document.form1).serialize()
   ,success:function(data){
       ////不知道java,到底执行完action后返回什么。。自己根据action的返回值判断下data看是否正确执行了
     
   }
   ,error:function(){alert('提交成功');}
});
我用struts2 跳转到一个action中 就显示中文乱码了 
保存到数据库也是中文乱码 这个该怎么解决?



------解决方案--------------------
gbk应该和gb2312编码一样,你在发送数据前使用escape编码下要发送的内容,jquery默认使用的是encodeURIComponent

建议你还是全部统一为utf-8编码比较好