jsp乱码,我使用了网上很多方法,未果。
请求页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>ch2-1.html</title>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  </head>
  <body>
    <form name="myForm" action="ch2-2.jsp">
      <select name="select" id="select">
      <option value="北京">北京</option>
     <option value="重庆">重庆</option>
     <option value="济南">济南</option>
      </select>
      <br>
      <input type="submit" value="提交">
    </form>
  </body>
</html>
应答页面:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=gb2312"%>
<%
  request.setCharacterEncoding("gb2312");
 String s=request.getParameter("select");
 /**
 
 out.println(s);
 if(s=="北京")
 {
  response.sendRedirect("ch2-beijing.html");
 }else 
 {
   out.println(s);
 }
 */
 %>
<html>
  <head>
    <title>My JSP 'ch2-2.jsp' starting page</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
  </head>
  <body>
  <%=s %>
  </body>
</html>
出来后,始终是乱码,我使用了很多方法,比方说用过滤器,没有成功。
求高手!

解决方案 »

  1.   

    <form name="myForm" method="post" action="ch2-2.jsp"> 比较字符串 应该用 equals  而不是 ==
      

  2.   

    请求页面最上面加上
    <%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>再试试
      

  3.   

    页面统一UTF-8,能写过滤器最好,或者接数据的时候用request.setCharacterEncoding("UTF-8"); 
      

  4.   

    form 默认是get方式
    而get是已url形式传参数过去的,没配置过当然是中文乱码。
    post才是以表单数据传送
    如果是get方式的话要配置服务器,比方tomcat的server.xml ,其他不清楚
      

  5.   

    写个过滤器,不行就用以下的方法强转
    String name=new String(request.getParameter("name").getBytes("iso-8859-1"),"gbk");
      

  6.   

    把编码改成  UTF-8看看
      

  7.   

     <form name="myForm" action="ch2-2.jsp"> 
    此时表单默认的提交方式为"get",在这种情况下用request.setCharacterEncoding("gb2312"); 
    是不能实现编码的转换的,试下改为:
    String s=new String(request.getParameter("select").getBytes("ISO-8859-1"),"gb2312"));
    out.println(s);
      

  8.   

    <%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312"%>