大致分析:首先一般通过普通表单传过来的中文参数获取不会乱码,一般乱码的中文参数都是通过链接获取到的,这种可以通过new String(request.getParameter(name).getBytes("ISO-8859-1"),"xxx")来解决乱码,比如我的name名是search_text,编码是utf-8,就是
new String(request.getParameter(search_text).getBytes("ISO-8859-1"),"utf-8").
做法就是通过三个判断语句来为这个参数赋值,我的代码仅供参考,代码不是很好。一是判断是否从搜索的表单传递过来,就是是否是第一次使用搜索传递过来页面,如果是直接可以获取,一般最好在之前设置一下编码(个人观点)。我的是utf-8,就以utf-8为例 。
代码如下:其中index.jsp是原来的网页,就是要提交表单参数的网页
<%
request.setCharacterEncoding("utf-8");
String receive_text;
receive_text = "";
if( request.getHeader("Referer")!=null && request.getHeader("Referer").indexOf("index.jsp") > 0){
receive_text = request.getParameter("search_text");//传过来的普通搜索的参数
/*如果参数值不为空,使用trim()去掉多余的空格*/
if(receive_text!=null) receive_text=receive_text.trim();
%>
<%if("".equals(receive_text) | | receive_tex==null){%>
<script type="text/javascript">
alert("提交的搜索内容有误,请重新输入");
</script>
<%
response.setHeader("refresh", "0.01;url=index.jsp");
return;
} //检查搜索数据合法性,如果为空便提示和跳转到原来的网页
}else if( request.getHeader("Referer")!=null){
receive_text = new String(request.getParameter("search_text").getBytes("ISO-8859-1"),"utf-8"); //解决从本页链接获取的参数乱码问题
}else{
response.sendRedirect("index.jsp");
}
%>
分页的第二页链接是 <a href = "search.jsp?pg=2&search_text=<%=receive_text %>" > 2 </a> 其中search.jsp是你这个可以实现搜索功能的网页名称,search_text是你要获取的参数name名,pg这个是你自己分页的名称。获取的的参数不乱码,这样就可以实现搜索分页的实现了。不提供实现分页和搜索内容的代码,请自行实现