http://127.0.0.1:8080/zl/1.jsp?typeadd=但是法&typeadd2=发射点法1.jsp
<%@ page contentType="text/html;charset=gb2312"%> 
<%String typeadd=null;
String typeadd2=null;if (request.getParameter("typeadd2")!=null)
{
typeadd2=new String(request.getParameter("typeadd2").getBytes("8859_1"),"GB2312");
}
if (request.getParameter("typeadd")!=null)
{
typeadd=new String(request.getParameter("typeadd").getBytes("8859_1"),"GB2312");
}
String topage=null;
response.setContentType("text/html;charset =UTF-8"); 
topage="2.jsp?typeadd=" + typeadd+"&typeadd2="+typeadd2;
response.sendRedirect(topage);
%>2.jsp<%@ page contentType="text/html;charset=gb2312"%> 
<%if (request.getParameter("typeadd")!=null)
{
String typeadd=null;
typeadd=new String(request.getParameter("typeadd").getBytes("8859_1"),"GB2312");
out.println(typeadd);
}
if (request.getParameter("typeadd2")!=null)
{
String typeadd2=null;
typeadd2=new String(request.getParameter("typeadd2").getBytes("8859_1"),"GB2312");
out.println(typeadd2);
}
%>
结果却是:F/?typeadd2=?拐 
需要结果是:但是法发射点法

解决方案 »

  1.   

    response.setContentType("text/html;charset=GB2312");
    typeadd2=new String(request.getParameter("typeadd2").getBytes("iso8859_1"),"GB2312");
      

  2.   

    楼主,getBytes应该是ISO8859-1,而不是8859——1
      

  3.   

    <%@page language="java" contentType="text/html; charset=gb2312"%>
    <%request.setCharacterEncoding("GBK");%>
    再加 str = new String(str.getBytes("ISO-8859-1"),"GBK");
         
    应该没问题