A.jsp(部分代码)
<%@ page import="java.lang.String" language="java" pageEncoding="UTF-8" %>
<%@ include file="/tags/taglibs.jsp"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
···
</head>
···
<a href="<%=ctx%>B.jsp?Name=${name }&sex=${sex }" 
     >click me</a>&nbsp;
---------------------------------------------------------------------------
B.jsp(部分代码)
<%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
···
    //显示乱码
    <%=request.getParameter("name")%>
    <%=request.getParameter("sex")%>
···
</body>

其中,在这个页面(A.jsp)接收的参数${ name}、${sex}都显示中文正常,但传到B.jsp页面后显示就出现乱码。

解决方案 »

  1.   

    //显示乱码
      <%
       request.setCharacterEncoding("UTF-8") ;// 根据原来页面的编码修改UTF-8如果原来为GBK就改为GBK
       response.setCharacterEncoding("UTF-8") ;
    %>
      <%=request.getParameter("name")%>
      <%=request.getParameter("sex")%>
    ···
      

  2.   

    页面传值,它会根据iso-8859-1转换的。
    你最好在接受的时候这样:new String(request.getParameter("name").getBytes("iso-8859-1"), "utf-8");
      

  3.   

    在一个Filter 将系统都所有过滤。
      

  4.   

    用filter过滤就不要考虑 这么页面转码问题了、
      

  5.   

    <% String name=request.getParameter("name");
       String sex=request.getParameter("sex"); 
       byte[] n1=new byte(name,"iso-8859-1");
        byte[] n2=new byte(sex,"iso-8859-1");
        name=new String(n1,"utf-8");
        sex=new String(n2,"utf-8");  %>
    <%=name>
    <%=sex%>
    这样你试试吧
      

  6.   

    String name=   new  String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");   这样就OK了
      

  7.   


    当然 不行,request.setCharacterEncoding("UTF-8") 是设置post请求才有效果,另外response.没有setCharacterEncoding("UTF-8") 方法,只有response.setContentType("text/html;charset=UTF-8");  这个是设置整个页面的编码的.
      

  8.   

    楼主 ,解决方案有两种,你用的url请求传参数 除了9楼说的以外,还可以在tomcat中的conf/server.cml配置
    <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>找到对应的端口配置加上URIEncoding="UTF-8"解决所有get请求乱码
    ,你用的时tomcat服务器吗?
      

  9.   

    get提交就是有中文乱码 可以改换一个方式 使用POST提交。。
      

  10.   

      a标签提交的方式是get提交。
      get提交的时候中文会出现乱码情况:
    1:a.jsp 和 b.jsp 页面编码方式看是否相同。
    2: 如果用到很多这种跳转,最好用一个过滤器,设置统一的编码方式。
    3: 可以直接在b.jsp页面转码.
    tring name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"gbk");
    getBytes()转换为字节码  在java中最后传递的都是字节码。
      

  11.   

    可以用这个试试,记得在jsp页面引包
    <%java.net.Encoder.encode(request.getParameter("name"),"utf-8");%>
      

  12.   

    在b.jsp中<head>上面加上<%request.setCharacterEncoding("UTF-8") ;%>
    或者将request.getParameter("name")改为
    tring name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
      

  13.   

    传参数页面用encodeURI(encodeURI(XXX))编码
    接参数页面用decodeURI(XXX,"utf-8")转码
    试试看
      

  14.   

    加上一句
    <%
         request.setCharactorEncoding("gbk");
    %>

    就OK了
    或者重新编码
    String name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"gbk");