1.jsp传参数到2.jsp页面,在2.jsp页面显示。 刚开始传递过来显示的中文字老是乱码。搜了很久都没看到。 还好来到CSND看看,终于找到解决的办法了。
首先要在2.jsp的<head></head>里写入如下代码:request.setCharacterEncoding("gb2312"). 就可以了。但是要记住在1.jsp的页面开头要写<%@ language=java contentType="text/html; charset=gb2312"%>. 其实道理应该很简单。传过来的和接收端都要指定好相同的编码方式。所以把“gb2312“改成“utf-8”也是对的。这个问题好象是tomcat的问题。 还好找到方法了。
这个方法是enjoythelife1229那里参考过来的。他还有以下总结,我没试过,相信是对的。
一、在页面第一句加入<%@ page contentType="text/html;charset=gb2312" %>
二、POST的字符以String name=new String((request.getParameter("name")).getBytes("gb2312"));接收
三、数据库连接开启gb2312字符集
sqlConn=java.sql.DriverManager.getConnection
("jdbc:mysql://"+DBServer+":3306/"+DBNAME+"?useUnicode=true&characterEncoding=gb2312", DBUser,DBPassword);
四、数据库中的字段值输出使用字符转换
String username=new String(rs.getString("username").getBytes("iso-8859-1"),"gb2312");
String eamil=new String(rs.getString("email").getBytes("iso-8859-1"),"gb2312");
如果这四种方法你都同时采用了,那中文问题就最终解决了
如果还解决不了,你斩了我,哈哈,我已经全方位的测试过了
数据库采用MySql、MsSql、Access、Oracle四种
如果你采用的是Tomcat,还可以在网页的首部写了两句话:
<%
// 写入字符集编码规则以适应汉字输入输出
response.setContentType("text/html; charset=gb2312");
request.setCharacterEncoding("gb2312");
%>