意图:分步式注册问题点:第一个页面传递给第2个页面时候,第2个页面接收的第一个页面信息中文的都乱码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'testVoteAdd.jsp' starting page</title>
</head> <body>
<form action="testVoteAdd2.jsp" method="post">
voteName:<input type="text" name="voteName" /><br>
voteType:<input type="radio" name="voteType" value="1"/>单选&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="voteType" value="2"/>多选<br>
voteOptionNum:<input type="text" name="voteOptionNum" /><br>
<input type="submit" value="Submit">
</form>
</body>
</html><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String voteName = request.getParameter("voteName");
String voteType = request.getParameter("voteType");
int voteOptionNum = Integer.parseInt(request.getParameter("voteOptionNum"));
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'testVoteAdd2.jsp' starting page</title>
</head> <body>
<form action="TestVoteAddServlet" method="post">
<input type="hidden" name="voteName" value="<%=voteName%>" />
<input type="hidden" name="voteType" value="<%=voteType%>" />
<input type="hidden" name="voteOptionNum"
value="<%=String.valueOf(voteOptionNum)%>" /> <table width="80%" border="1" cellpadding="5">
<tr>
<th colspan="2"><%=voteName%></th>
</tr>
<%for (int i = 0; i < voteOptionNum; i++){%>
<tr><td>选项<%=i + 1%></td><td><input type="text" name="voteOption<%=i%>" /></td></tr>
<%}%>
</table>
<input type="submit" value="Submit">
</form>
</body>
</html>拆分成两个网页也是这样,如上。项目编码UTF-8
学习阶段JavaWeb入门,下一章讲javabeanjsp乱码

解决方案 »

  1.   

    request.setCharacterEncoding("UTF-8");下可以正常显示了,但是不明白为什么pageEncoding="UTF-8"不起效?换句话说就是request对象的数据存储格式不是UTF-8?
      

  2.   

    pageEncoding是对页面信息进行编码,而setCharactrEncoding是对页面之间的参数进行编码。
      

  3.   

    pageEncoding设置对参数传递不起作用的。不同的浏览器向服务器发送的信息采用的编码方式不同,索引要设置request.setCharacterEncoding。
      

  4.   

    pageEncoding相当于只是页面编码格式,而setCharacterEncoding是指参数传递的编码
      

  5.   

    在response转到另一个页面的时候也加上UTF-8编码,有时候utf8不行用gb2312就可以解决乱码了,
      

  6.   

    request.setCharacterEncoding("UTF-8");设置的是request对象传递的参数。
    String voteName = request.getParameter("voteName");
        String voteType = request.getParameter("voteType");
        int voteOptionNum = Integer.parseInt(request.getParameter("voteOptionNum"));这几句是从request中获取参数。设置了编码类型就不会乱码了
      

  7.   

    pageEncoding和request.setCharactrEncoding
      

  8.   

    request.setCharacterEncoding("UTF-8");设置的是request对象传递的参数。
    然后再写要接收的数据就不会有乱码了
      

  9.   

    页面发送的数据也是字符,需要指定字符集的 pageEncoding是对页面信息进行编码,而setCharactrEncoding是对页面之间的参数进行编码。谢谢,理解了,相当于字符流