第一个jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String s1 = "你好了";
%>
<html>
<body>
<jsp:forward page="index2.jsp">
<jsp:param name ="s1" value="<%=s1%>"/>
</jsp:forward> </body>
</html>第二个jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
request.setCharacterEncoding("gbk");
String ss = new String( request.getParameter("s1").getBytes("ISO-8859-1"),"GBK");
out.println(ss);
%>执行第一个jsp页面,由于自动转到第二个页面,看到的应该是“你好了”,但是却是乱码, 为什么呢?非常谢谢大家啊。
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String s1 = "你好了";
%>
<html>
<body>
<jsp:forward page="index2.jsp">
<jsp:param name ="s1" value="<%=s1%>"/>
</jsp:forward> </body>
</html>第二个jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
request.setCharacterEncoding("gbk");
String ss = new String( request.getParameter("s1").getBytes("ISO-8859-1"),"GBK");
out.println(ss);
%>执行第一个jsp页面,由于自动转到第二个页面,看到的应该是“你好了”,但是却是乱码, 为什么呢?非常谢谢大家啊。
这个字符串的编码转换有点多余;request.setCharacterEncoding("gbk");
请求的编码设置应该放在第一个页面的forward 之前
试一下这句不要 String ss = new String( request.getParameter("s1").getBytes("ISO-8859-1"),"GBK");
<jsp:param name ="s1" value="<%=s1%>"/>
</jsp:forward>这个类似于链接中传递参数,注意编码的统一,在接受的时候保证与客户端一致
String s1 = "你好了";
%>
<html>
<body>
<%request.setCharacterEncoding("gb2312");%>
<jsp:forward page="index2.jsp">
<jsp:param name ="s1" value="<%=s1%>"/>
</jsp:forward>
</body>
</html><%@ page language="java" import="java.util.*" pageEncoding="GBK"%><html>
<head></head>
<body><%=request.getParameter("s1")%></body>
</html>
这是改过的代码,已经测试过了。整了一上午,不易啊!