jsp乱码

小行星0906 2013-09-17 01:15:48
意图:分步式注册

问题点:第一个页面传递给第2个页面时候,第2个页面接收的第一个页面信息中文的都乱码


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'testVoteAdd.jsp' starting page</title>
</head>

<body>
<form action="testVoteAdd2.jsp" method="post">
voteName:<input type="text" name="voteName" /><br>
voteType:<input type="radio" name="voteType" value="1"/>单选    <input type="radio" name="voteType" value="2"/>多选<br>
voteOptionNum:<input type="text" name="voteOptionNum" /><br>
<input type="submit" value="Submit">
</form>
</body>
</html>



<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String voteName = request.getParameter("voteName");
String voteType = request.getParameter("voteType");
int voteOptionNum = Integer.parseInt(request.getParameter("voteOptionNum"));
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'testVoteAdd2.jsp' starting page</title>
</head>

<body>
<form action="TestVoteAddServlet" method="post">
<input type="hidden" name="voteName" value="<%=voteName%>" />
<input type="hidden" name="voteType" value="<%=voteType%>" />
<input type="hidden" name="voteOptionNum"
value="<%=String.valueOf(voteOptionNum)%>" />

<table width="80%" border="1" cellpadding="5">
<tr>
<th colspan="2"><%=voteName%></th>
</tr>
<%for (int i = 0; i < voteOptionNum; i++){%>
<tr><td>选项<%=i + 1%></td><td><input type="text" name="voteOption<%=i%>" /></td></tr>
<%}%>
</table>
<input type="submit" value="Submit">
</form>
</body>
</html>



拆分成两个网页也是这样,如上。

项目编码UTF-8




学习阶段JavaWeb入门,下一章讲javabean
...全文
271 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
小行星0906 2013-09-19
  • 打赏
  • 举报
回复
页面发送的数据也是字符,需要指定字符集的 pageEncoding是对页面信息进行编码,而setCharactrEncoding是对页面之间的参数进行编码。 谢谢,理解了,相当于字符流
编程点滴 2013-09-18
  • 打赏
  • 举报
回复
request.setCharacterEncoding("UTF-8");设置的是request对象传递的参数。 然后再写要接收的数据就不会有乱码了
  • 打赏
  • 举报
回复
pageEncoding和request.setCharactrEncoding
Adronfan 2013-09-17
  • 打赏
  • 举报
回复
在response转到另一个页面的时候也加上UTF-8编码,有时候utf8不行用gb2312就可以解决乱码了,
tony4geek 2013-09-17
  • 打赏
  • 举报
回复
楼上已经说了
breaking236 2013-09-17
  • 打赏
  • 举报
回复
pageEncoding相当于只是页面编码格式,而setCharacterEncoding是指参数传递的编码
无聊找乐 2013-09-17
  • 打赏
  • 举报
回复
页面发送的数据也是字符,需要指定字符集的
ghostkngiht 2013-09-17
  • 打赏
  • 举报
回复
pageEncoding设置对参数传递不起作用的。不同的浏览器向服务器发送的信息采用的编码方式不同,索引要设置request.setCharacterEncoding。
  • 打赏
  • 举报
回复
pageEncoding是对页面信息进行编码,而setCharactrEncoding是对页面之间的参数进行编码。
踩踩一哥 2013-09-17
  • 打赏
  • 举报
回复
request.setCharacterEncoding("UTF-8");设置的是request对象传递的参数。 String voteName = request.getParameter("voteName"); String voteType = request.getParameter("voteType"); int voteOptionNum = Integer.parseInt(request.getParameter("voteOptionNum"));这几句是从request中获取参数。设置了编码类型就不会乱码了
小行星0906 2013-09-17
  • 打赏
  • 举报
回复
request.setCharacterEncoding("UTF-8"); 下可以正常显示了,但是不明白为什么pageEncoding="UTF-8"不起效? 换句话说就是request对象的数据存储格式不是UTF-8?

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧