表单提交中文时出现乱码
Posted 风来风往风伤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表单提交中文时出现乱码相关的知识,希望对你有一定的参考价值。
下面是一个提交页面(submit.jsp),代码如下:
<html> <head> <title>JSP的中文处理</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <form name="form1" method="post" action="process.jsp"> <div align="center"> <input type="text" name="name"> <input type="submit" name="Submit" value="Submit"> </div> </form> </body> </html> //下面是处理页面(process.jsp)代码: <%@ page contentType="text/html; charset=gb2312"%> <html> <head> <title>JSP的中文处理</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <%=request.getParameter("name")%> </body> </html>
如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF
-8编码方式来发送请求,而UTF- 8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。
解决办法:通过request.seCharacterEncoding ("gb2312")对请求进行统一编码,就实现了中文的正常
显示。修改后的process.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%> <% request.setCharacterEncoding("gb2312"); %> <html> <head> <title>JSP的中文处理</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <%=request.getParameter("name")%> </body> </html>
以上是关于表单提交中文时出现乱码的主要内容,如果未能解决你的问题,请参考以下文章
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法