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




