<%@ charset="GB2132" pageEncoding="GB2132" %>
...
<% ...
   String errMsg = "密码错误";
   response.sendRedirect("error.jsp?errMsg="+URLEncoding.encode(errMsg, "GB2132"));
   
   显示为乱码……   第一次做, 使用的是eclipse(lomboz) + tomcat5.5, 要怎么传递这类中文参数?谢谢!

解决方案 »

  1.   

    对中文进行转码
    你需要用到的类:
    java.net.URLEncoder
    java.net.URLDecoder
      

  2.   

    我用UTF-8了pageEncoding = "UTF-8"
    charset="UTF-8"String errMsg = "密码错误";
    res.sendRedirect("/project/changePassword.jsp?errMsg="+URLEncoder.encode(errMsg, "UTF-8"));这样为什么还不行?请问如何转换呢
      

  3.   

    response.sendRedirect("error.jsp?errMsg="+URLEncoding.encode(errMsg, "GB2132"));error.jsp中获取参数:
    errMsg=new String(request.getParameter("errMsg").trim().getBytes("8859_1"),"gb2312");
      

  4.   

    response.setContentType("text/html;charset=GB2312");
    request.setCharacterEncoding("gb2312");
      

  5.   

    分别给request,response设置编码试试
    request.setCharacterEncoding("utf-8");
    ......
    response.setCharacterEncoding("utf-8");
      

  6.   

    接受参数页面String errMsg = java.net.URLDecoder.decode(request.getPara(),"UTF-8");
      

  7.   

    发送页面
    page1.jsp
    <%@ page contentType="text/html;charset=UTF-8" %> 
    <%@ page pageEncoding="UTF-8"%>
    <% 
        request.setCharacterEncoding("UTF-8");
        String errMsg = "%E5%AF%86%E7%A0%81%E9%94%99%E8%AF%AF";
        response.sendRedirect("page2.jsp?errMsg=" + errMsg);
    %>接受页面
    page2.jsp
    <%@ page contentType="text/html;charset=UTF-8" %> 
    <%@ page pageEncoding="UTF-8"%>
    <%request.setCharacterEncoding("UTF-8");%>
    <% String recString = request.getParameter("errMsg");
    %>
    <%= recString %>
      

  8.   

    那lz肯定疑问了,你的"%E5%AF%86%E7%A0%81%E9%94%99%E8%AF%AF"
    怎么来的呢?呵呵,我们来解决这个问题,
    <form name = "form1" action ="page2.jsp">
       <input type = "text" name ="errMsg" />
       <input type = "submit" />
    </form>
    你一提交,看看浏览器的编码,就会惊喜的找到你想要的东西啦?
    怎么,嫌弃麻烦,那好,只好再送个小法宝给你了,这东西叫google编码
    进入以下网址
    http://www.sinobuy.cn/utf8/
    输入你想转换的字,查了帖上去吧?
    什么,担心看不懂了? 你不会写个注释啊!!!!!!!!!!
      

  9.   

    在sendRedirect跳转到的页面中增加
    request.setCharacterEncoding("gb2312")就行了。String errMsg = "密码错误";
    res.sendRedirect("/project/changePassword.jsp?errMsg="+errMsg);
    changePassword.jsp<%
    request.setCharacterEncoding("gb2312");
    %>
      

  10.   

    String errMsg = new String ( request.getParameter("errMsg").getBytes("ISO8859-1"),"UTF-8" );测试过了,这样接收没有问题
      

  11.   

    另外通过GET方式提交的参数request.setCharacterEncoding();不起作用,只对POST有效
      

  12.   

    public String toGb(String s) {
            String str = null;
            if (s == null) {
                str = "";
            }
            try {
                str = new String(s.getBytes("ISO8859_1"), "GBK");
                return s;
            } catch (Exception e) {
                return null;
            }
        }
    String errMsg = toGb(request.getParameter("errMsg"));