在a.html页面中输入“关于”点查询,search.java中用request.getparameters("searchkey")可以取得正常的值“关于”a.html查询后将跳转到b.htmlx 结果显示页面。但在b.html查询结果页面中点第二页时,search.java中用request.getparameters("searchkey")变乱码。
分页代码如下:
<form action="module?mdname=swcl-search-result&searchkey=关于" method="post" name="form_page">
<a href="module?mdname=swcl-search-result&searchkey=关于&ipage=1">
<a href="module?mdname=swcl-search-result&searchkey=关于&ipage=2">
</form>
点第二页时后台接收的searchkey参数值变乱码,要用new String(searchkey.getByte("iso8859-1"),"gbk")转一下才正确现在的问题是如果用getByte("iso8859-1")转编码,那么在查询页面提交后接收到就变乱码,反之如果不转在点第二页时变乱码。我估计是分页部分有问题,因为在系统中所有有分布的地方且分布传递参数带中文都会是乱码。但找不出是什么原因。已查看过了,所有html文件编码都统一是gb2312的

解决方案 »

  1.   


    LZ的编码格式要统一啊:要么都用gbk要么都用gb2312方法一:
    new String(searchkey.getByte("iso8859-1"),"gb2312");方法二:
    将所有html文件编码改成gbk
      

  2.   

    <a href="module?mdname=swcl-search-result&searchkey=关于&ipage=1">分页查找时。你统一用<input type="hidden">处理。post方式提交。
    这样就不用到处转转码了。
      

  3.   

    关键是数据库 ,和前台的编码不一致
    可以写一个EncodingFilter在Listener你面实现码值转换
    反正乱码问题很普遍,也难解决
      

  4.   

    与数据库无关的,EncodingFilter已经有了的。
      

  5.   

    分页方式的多条件查询最好写一个form版本的分页控件。不要转码了。  你转一次,下次点击下一页又会乱码的。
      

  6.   

    你filter处理了几个方法???怎么写的???
    感觉你至少应该写两个方法吧,一个是getParameter 另一个是getParameters,像你上面用的是getParameters你如果过滤器只处理getParameter那么getParameters这个方法取得的值就会乱码。
    如果是你已经处理了这个getParameters方法,那就是别的原因了。
      

  7.   

    1.页面显示中文
    JSP中
    <%@ page language="java" contentType="text/html; charset=GBK"%>
    Servlet中:
    response.setContentType("text/html;charset=GBK");
    2.中文数据的表单提交
    一般不需要特殊处理
    3.连接参数,javascript中location定位
    <a href="D.jsp?username=我的测试">连接</a>
    String name = request.getParameter("username");
    name = new String(name.getBytes("iso-8859-1"),"GBK");4.response发送中文数据
    发送方,需要使用java.net.URLEncoder编码
    接收的一方,需要使用java.net.URLDecoder解码
    同时使用
    name = new String(name.getBytes("iso-8859-1"),"GBK");转换5.使用jsp:include和jsp:forward方式发送中文数据
    需要使用过滤器来转换
    在过滤器中,使用
    request.setCharacterEncoding("GBK");
    过滤所有的请求数据为中文
      

  8.   

    在tomcat 中的server.xml文件中的Connector标签中添加URIEncoding="GBK"  试试
      

  9.   

    上面各位如果都不行的话
    就写的filter过滤吧