在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的
分页代码如下:
<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的
解决方案 »
- 问个js方面的问题
- 关于Struts标签库的显示问题
- JSP中application对象的getServletInfo()方法的使用
- SQL Server服务器为10.1.0.1\SQLEXPRESS的JDBC连接的URL怎么写?
- 高分:struts1+jdbc如何把前台提交的word文件存入SqlServer数据库
- 求和
- 请教文本框输入时间限制的问题
- 想做一个全系统检索功能求方法求思路
- 关于jsp里文件操作的问题,请高手指点
- (200分)以前没有作过JSP的项目,所以这方面一直不太懂!请教!
- 这些java面试题你能回答多少?
- 哪里有Eclipse Jee版本下(不是myeclipse),开发Web程序的资料
LZ的编码格式要统一啊:要么都用gbk要么都用gb2312方法一:
new String(searchkey.getByte("iso8859-1"),"gb2312");方法二:
将所有html文件编码改成gbk
这样就不用到处转转码了。
可以写一个EncodingFilter在Listener你面实现码值转换
反正乱码问题很普遍,也难解决
感觉你至少应该写两个方法吧,一个是getParameter 另一个是getParameters,像你上面用的是getParameters你如果过滤器只处理getParameter那么getParameters这个方法取得的值就会乱码。
如果是你已经处理了这个getParameters方法,那就是别的原因了。
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");
过滤所有的请求数据为中文
就写的filter过滤吧