CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

为什么在分页的时候,第一页显示正常,按下一页,到第二页,变量里的中文字符就变乱码了,哪位朋友能帮帮我?

楼主arikejiang()2005-08-30 19:19:55 在 Java / Web 开发 提问

为什么在分页的时候,第一页显示正常,按下一页,到第二页,变量里的中文字符就变乱码了,哪位朋友能帮帮我?  
  request.setCharacterEncoding("gb2312");    
               
            item_2=(String)request.getParameter("item");  
     
   
  System.out.println(item_2);  
  age_1=(String)request.getParameter("age_1");  
  age_1=age_1.trim();  
  age_2=(String)request.getParameter("age_2");  
  age_2=age_2.trim();  
  上面这段代码的变量是从上一个页面的下拉列表框取来的  
  查询的语句是  
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();  
                  Connection   connect;  
                  connect=DriverManager.getConnection("jdbc:odbc:shanghaitoday","shtodaydb","s1n0db");  
  //   connect1=DriverManager.getConnection("jdbc:odbc:shanghaitoday","shtodaydb","s1n0db");  
                  Statement   state1;  
                   
                  state1=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,  
          ResultSet.CONCUR_READ_ONLY);  
                  //state2=connect1.createStatement();  
               
                                   
                  String   strQuery1="select   *   from   customer_table   where   (age>="+age_1+"   and   age<="+age_2+")   and   item_name   like   '%"+item_2+"%'   order   by   name_id   ";  
  //String   strQuery2="select   count(name_id)as   dd   from   customer_table   ";  
                  ResultSet   result1=state1.executeQuery(strQuery1);  
  Statement   stmt1=connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
                  strSQL="select   count(*)   as   co   from   customer_table";  
  ResultSet   rs1=stmt1.executeQuery(strSQL);  
  while(rs1.next()){  
                intRowCount=rs1.getInt("co");  
        }  
        rs1.close();  
                stmt1.close();  
        if(intRowCount%intPageSize   ==   0){  
  intPageCount=intRowCount/intPageSize;  
  }else{  
  intPageCount=intRowCount/intPageSize+1;  
  }  
  if(intPage>intPageCount)   intPage=intPageCount;  
  i=(intPage-1)*intPageSize;  
  if(i<0)   i=0;  
   
  if(i==0)  
          result1.beforeFirst();  
  else  
          result1.absolute(i);  
  i=0;  
  System.out.println(strQuery1);  
   
  %>  
  <%                        
           
    while   (i<intPageSize   &&result1.next())  
                    {        
         
  id=result1.getString("name_id");  
                      id=id.trim();  
                      user_name=result1.getString("name");  
                      age=result1.getString("age");  
                      company_job=result1.getString("job");  
                      company_name=result1.getString("company");  
                      address=result1.getString("address");  
                      post=result1.getString("post");  
                      phone=result1.getString("phone");  
                      mail_addr=result1.getString("email");  
                      txt_all=result1.getString("remark");  
                      item_name=result1.getString("item_name");  
       
     
  %>  
  然后第一页显示都正常,但是到第二页的时候,item_2里的变量值变成乱码了(取来的是中文)  
  <%if(intPage!=1){%>  
                                                              <a   href="test.jsp?page=1">首页</a>  
                                                              <%}%>  
                                                              <%if(intPage==1){%>  
                                                              首页  
                                                              <%}%>  
                                                              <%if(intPage>1){  
      request.setCharacterEncoding("gb2312");   %>  
                                                              <a   href="test.jsp?page=<%=intPage-1%>&item=<%=item_2%>&age_1=<%=age_1%>&age_2=<%=age_2%>&num_to=<%=intRowCount%>">上一页</a>  
                                                              <%}%>  
                                                              <%if(intPage<=1){%>  
                                                              上一页  
                                                              <%}%>  
                                                              <%if(intPage<intPageCount){  
      request.setCharacterEncoding("gb2312");   %>  
                                                              <a   href="test.jsp?item=<%=item_2%>&page=<%=intPage+1%>&age_1=<%=age_1%>&age_2=<%=age_2%>&num_to=<%=intRowCount%>">下一页</a>  
                                                              <%}%>  
                                                              <%if(intPage>=intPageCount){%>  
                                                              下一页  
                                                              <%}%>  
                                                              <%if(intPage!=intPageCount){  
      request.setCharacterEncoding("gb2312");   %>  
                                                              <a   href="test.jsp?page=<%=intPageCount%>&item=<%=item_2%>&age_1=<%=age_1%>&age_2=<%=age_2%>&num_to=<%=intRowCount%>">尾页</a>  
                                                              <%}%>  
                                                              <%if(intPage==intPageCount){%>  
                                                              尾页  
                                                              <%}%>  
  这是翻页代码,请问有什么办法可以解决啊??????? 问题点数:30、回复次数:8Top

1 楼chinatelly(atelly)回复于 2005-08-30 19:33:09 得分 0

request.setCharacterEncoding("GBK");用这个试试Top

2 楼amorsuper(amor)回复于 2005-08-30 19:34:43 得分 0

没有进行url的中文过滤  
  就是要能支持直接从浏览器输入中文的文件名  
   
  具体怎么解决~~请楼下的up一下~Top

3 楼arikejiang()回复于 2005-08-31 15:06:20 得分 0

楼上说的我不太明白,能说具体点吗?有没有代码供参考.Top

4 楼suw628(suw628)回复于 2005-08-31 16:56:12 得分 0

哦。你如果是搜索的话。在你分页的超连接后面还要加上你搜索时的关键字了。  
  如<a   href="ggg.jsp?page=<%=intPage-1%>&name=搜索时的关键字">上一页</a>Top

5 楼amorsuper(amor)回复于 2005-08-31 23:45:22 得分 30

item_2是中文的情况的解决办法  
  item=<%=item_2%>---->item=<%=java.net.URLEncoder.encode(item_2)%>  
   
  接收:  
  request.getParameter(item)---->java.net.URLDecoder.decode(request.getParameter(item))Top

6 楼amorsuper(amor)回复于 2005-09-01 01:09:35 得分 0

tomcat默认不支持中文url  
   
  一些参考:  
  http://blog.csdn.net/flyxxxxx/archive/2004/09/10/100319.aspx  
   
  http://www.blogjava.net/huhu/archive/2005/06/07/5674.htmlTop

7 楼shareanway(清炒苦瓜)回复于 2005-09-07 17:04:52 得分 0

兄弟我碰到的问题跟你   一样,正在需求解决办法。encode()和decode()好像不行。用了过滤器后就不行,我以前不用过滤器时,自己写一个转换函数是行的,现在用了过滤器就不行了。Top

8 楼shareanway(清炒苦瓜)回复于 2005-09-14 08:48:25 得分 0

顶呀!Top

相关问题

  • Bean中的字符串变量乱码!
  • 字符变变量
  • 字符变量问题
  • 分页的变量怎么增加~
  • 可以对字符串像分页那样进行分页吗
  • 字符乱码问题?
  • 字符乱码问题!(急)
  • 处理字符串变量的问题。
  • 字符串变量的模糊查询?
  • 字符串变量的问题!多谢

关键词

  • .net
  • 乱码
  • 中文
  • 代码
  • 解决
  • jdbc
  • 分页
  • 变量
  • age
  • 过滤器

得分解答快速导航

  • 帖主:arikejiang
  • amorsuper

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo