群里一个小盆友写了两个 jsp,通过 jsp:forward 传参时总是乱码,而页面、tomcat 的编码都有设置,我一时激动就找了找解决办法
两个 JSP 分别如下:
- test1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title<title> <head> <body> <jsp:forward page="test2.jsp" > <jsp:param name="name" value="你好"/> <jsp:param name="age" value="111"/> <jsp:forward> <body> <html>
- test2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <% String userName=request.getParameter("name"); String age=request.getParameter("age"); %> <title>Title</title> </head> <body> <%=userName%> <%=age%> test 上略当分阃 </body> </html>
在 test2 中,使用 new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
没用,猜测是传输时的问题,于是 google 了以下 jsp:forward 传参乱码,看到解决办法是在 test1.jsp 种加上:
<% request.setCharacterEncoding("utf-8");%>
bingo!
ps. 事后被小盆友膜拜了一下,然而其实我感觉挺汗颜的个破问题找了十几分钟 😂
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于