呵呵。这种情况我也遇到过。只有一种情况会这样。就是在动态生成链接时。你必须保证参数是纯中文
如:“参数 1”
不能是“参数+1”这类参数中间是空格就是空格。在服务器端处理时用ISO-8859-1转换。其它的都没有问题。
还有STRUTS中的<HTML:LINK>标签不要用.尽量使用<a href="<bean:write name="..." />">

解决方案 »

  1.   

    这里有篇对中文出现乱码分析得很全面的文章
    http://www-900.ibm.com/developerWorks/cn/java/jsp_dbcsz/index.shtml如果通过 get/post 方式从 browser 返回的参数值中包含汉字信息, servlet 将无法得到正确的值。SUN的 J2SDK 中,HttpUtils.parseName 在解析参数时根本没有考虑 browser 的语言设置,而是将得到的值按 byte 方式解析。这是网上讨论得最多的 encoding 问题。因为这是设计缺陷,只能以 bin 方式重新解析得到的字符串;或者以 hack HttpUtils 类的方式解决。参考文章 2 均有介绍,不过最好将其中的中文 encoding GB2312、 CP1381 都改为 GBK,否则遇到 GBK 汉字时,还是会有问题。
    Servlet API 2.3 提供一个新的函数 HttpServeletRequest.setCharacterEncoding 用于在调用 request.getParameter(“param_name”) 前指定应用程序希望的 encoding,这将有助于彻底解决这个问题。 
      

  2.   

    URLEncoder.encode(参数,"GB2312")%>
      

  3.   

    二、表单提交中文时出现乱码 
    下面是一个提交页面(submit.jsp),代码如下: 
    <html> 
    <head> 
    <title>JSP的中文处理</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    </head> <body> 
    <form name="form1" method="post" action="process.jsp"> 
    <div align="center"> 
    <input type="text" name="name"> 
    <input type="submit" name="Submit" value="Submit"> 
    </div> 
    </form> 
    </body> 
    </html> 
    下面是处理页面(process.jsp)代码: 
    <%@ page contentType="text/html; charset=gb2312"%> 
    <html> 
    <head> 
    <title>JSP的中文处理</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    </head> <body> 
    <%=request.getParameter("name")%> 
    </body> 
    </html> 
    如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。修改后的process.jsp代码如下: 
    <%@ page contentType="text/html; charset=gb2312"%> 
    <% 
    request.setCharacterEncoding("gb2312"); 
    %> 
    <html> 
    <head> 
    <title>JSP的中文处理</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    </head> <body> 
    <%=request.getParameter("name")%> 
    </body> 
    </html>
      

  4.   

    各位大哥,首先我声明一点的是我用的是Struts,sidengc(菲菲) 说的对,在链接上一页、下一页时,我用了<HTML:LINK>标签,也许确实就是它在作怪,因为我改为<a href="..."></a>就没问题了,但是因为我为了处理多个参数的问题,我在<HTML:LINK>标签中使用map,使它能传递多个参数,但如果使用回头再<a href="..."></a>就失去了使用Struts的意义了。
    其他几位大哥说的中文处理问题,我已经使用一个Filter,在Filter中加入request.setCharacterEncoding("gb2312"),在从request中取时中文是没有问题的。希望那位大哥能告诉我<HTML:LINK>标签到底有什么问题,该如何才能用,等待中...........