一个很久没有解决的问题,请各位大哥大姐帮帮忙!谢谢.

zhuxiaopeng 2003-05-21 01:42:50
下面是我做的查询分页显示代码,当我输入英文关键字是可以分页显示,但是我输入中文关键字是第一页可以显示,点下一页时就不好显示.
<%@ page contentType="text/html; charset=GB2312" %>
<html>
<head>
<title>关键字查询</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="zhu/Template15.css" type="text/css">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<jsp:include page="fooder.jsp" flush="true"/>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="LoginBean" scope="page" class="DB.registerDB" />

<%

int PageSize=2; //一页显示的记录数
int RowCount; //记录总数
int PageCount; //总页数
int Page; //待显示页码
int i,j;
String q1,sql1,sql;
String strPage=request.getParameter("page");
if(strPage==null)
{
Page=1;
}else{
Page=Integer.parseInt(strPage);
if(Page<1) Page=1;
}
q1=request.getParameter("finder"); //从上一个页面接收的关键字
q1=new String(q1.getBytes("ISO8859-1"));
String q2=new String(q1);//分页时用到的关键字
q1="'%"+q1+"%'";
sql1="select count(*) from Book where Name like "+q1;
ResultSet rs1=LoginBean.perFORMSQL(sql1);
rs1.next();
RowCount=rs1.getInt(1);
rs1.close();
PageCount=(RowCount+PageSize-1)/PageSize;
if(Page>PageCount) Page=PageCount;
sql="select * from Book where Name like "+q1;
ResultSet rs=LoginBean.perFORMSQL(sql);
i=(Page-1)*PageSize;
for(j=0;j<i;j++) rs.next();

%>
<table width="750" border="0" cellspacing="0" cellpadding="0" align="center" height="160">
<tr>
<td height="60" valign="top">  当前位置:><a href="index.jsp">首页</a> 商品检索</td>
</tr>
<tr>
<td align="center" height="38" valign="top">
<p style="font-size:14px;font-color:#ffffff"><font color=yellow><B><font color="#3366FF">商品检索结果列表</font></B></font></p>
</td>
</tr>
<tr>
<td height="22" valign="middle" bgcolor="LightSlateGray">共有<%=RowCount%>条记录</td>
</tr>
<tr>
<td height="83" valign="top">
<table width="750" border="1" cellspacing="0" cellpadding="0" height="76" bordercolor="#6B7584" align="center">
<tr>
<td bgcolor="#6B7584" height="21" align="center" width="295"><font color="#FFFFFF">商品名称</font></td>
<td bgcolor="#6B7584" height="21" width="90" align="center"><font color="#FFFFFF">规格</font></td>
<td bgcolor="#6B7584" height="21" width="40" align="center"><font color="#FFFFFF">单位</font></td>
<td bgcolor="#6B7584" height="21" width="59" align="center"><font color="#FFFFFF">市场价</font></td>
<td bgcolor="#6B7584" height="21" width="59" align="center"><font color="#FFFFFF">优惠价</font></td>
<td bgcolor="#6B7584" height="21" width="79" align="center"><font color="#FFFFFF">购买数量</font></td>
<td bgcolor="#6B7584" height="21" width="117" align="center"><font color="#FFFFFF">操作</font></td>
</tr>
<%
i=0;
while(i<PageSize&&rs.next())
{ String index=rs.getString("ID");
%>
<tr>
<td height="21" width="295"><A href="display.jsp?bookid=<%=index%>"><%out.print(rs.getString("Name"));%></A></td>
<td height="21" width="90">16开</td>
<td height="21" width="40">本</td>
<td height="21" width="59"><%out.print(rs.getFloat("MarketPrice"));%></td>
<td height="21" width="59"><font color=red ><%out.print(rs.getFloat("Price"));%></font></td>
<td height="21" width="79"> </td>
<td height="21" width="117"><a href="add.jsp?ProID=<%=index%>"><img src="zhu/Basket.gif" width="31" height="20" border="0"></a></td>
</tr>
<%
i++;}
rs.close();
%>
<tr bgcolor="LightSlateGray">
<td height="21" colspan="7">第<%=Page%>页  共<%=PageCount%>页
<% if(Page<PageCount){%>
<A href="find.jsp?page=<%=Page+1%>&finder=<%=q2%>">下一页</A>
<%}%>
<% if(Page>1){%>
<A href="find.jsp?page=<%=Page-1%>&finder=<%=q2%>">上一页</A>
<%}%>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<br>
<HR SIZE=1 width=760>
<jsp:include page="header.jsp" flush="true"/>
</body>
</html>
...全文
11 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
himacs 2003-05-23
这样的问题在已经运行的网站上也存在。郁闷啊,我想查歌词,只能显示前20条记录,下一页中文关键字都成了乱码,不只是问号。

软件是一种态度
态度决定一切
人が品質です。
回复
zhuxiaopeng 2003-05-23
是汉字,但就是显示不了信息
回复
aleccheung 2003-05-23
下一页时的关键词是"??",还是"中文"
如果是"??"就是你的编码有问题,如果是“中文”就没问题了,至于
java.net.URLEncoder.encode() 可以用也可以不用的。
保证你的地址栏里的“汉字” 能正常显示就可以了。
回复
lxcc 2003-05-23
http://www.chinabs.net/jsp/default.asp?infoid=32
看有没有帮助
回复
zhuxiaopeng 2003-05-23
朋友们能不能给我讲一下几种编码的相互转换方法?谢谢!
回复
java悠悠 2003-05-21
编码问题
回复
jimshen 2003-05-21
URLEncoder
回复
zhuxiaopeng 2003-05-21
谢谢!英文可以分页的,我试过了,但中文只能显示第一页
回复
qizi168 2003-05-21
对每一个传入下一页的变量进行转码,实施看,没有时间细看你的代码,但是既然英文没错,那么应该是编码问题,你确信英文可以分野?
回复
叶子哟 2003-05-21
encode吧
回复
zhuxiaopeng 2003-05-21
各位!怎么不理我,帮个忙,谢谢!
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2003-05-21 01:42
社区公告
暂无公告