jsp表单传值后在页面中文显示乱码
主要通过添加以下代码来实现(前提是其他处的编码都设置成了utf-8):
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
本人程序有两个:index.jsp与getinfo.jsp
index.jsp如下,使用复选框传值,传入姓名为中文时显示乱码:
<body> <form action="getinfo.jsp" method=post name=form> 姓名:<input type="text" name="name"> <p>您熟悉的语言:</p> <p> <!-- 供选取语言类型的复选框 --> <input type="checkbox" name=box value="JSP">Jsp <input type="checkbox" name=box value="PHP">Php <input type="checkbox" name=box value="ASP.NET">ASP.NET </p> <input type="submit" name="submit" value="Enter"> </form> </font> <br> </body>
getinfo.jsp如下,接收传过来的值并在页面进行显示:
这里接收传过来的name的变量是textContent。因此需要在它的前面附上文章最开始的两行代码,用以进行格式的限定。要放在name前面才有效
<body> <% response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); String textContent=request.getParameter("name"); %> <br> <%=textContent%>> <p>熟悉的语言是: <% String box[]=request.getParameterValues("box");// for(int i=0;i<box.length;i++){ out.println("<li>"+box[i]+"</li>"); } //这个遍历的作用是为了显示勾选的语言 %> </body>