jsp乱码问题,请教各位了

zwm1988 2006-02-16 02:58:35
c.jsp:
<%@ page contentType="text/html;charset=GBK" %>
<html>
<body>
<%
request.setCharacterEncoding("gb2312");
%>
<form action="d.jsp" method="post">
姓名<input type="text" name="UserName">
<input type="submit" value="提交">
</form>
</body>
</html>


d.jsp:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.util.*"%>
<html>
<body>
你好!
<%
request.setCharacterEncoding("UTF-8");
String Name=request.getParameter("UserName");
System.out.println("Name:"+Name);
%>
今天是
<%
Date today=new Date();
%>
<%=today.getDate()%>号,星期<%=today.getDay()%>
</body>
</html>

打印出的Name是乱码,怎么回事?
...全文
476 点赞 收藏 23
写回复
23 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
http://java.sun.com/j2se/1.4.2/docs/api/java/net/URLEncoder.html
回复
zwm1988 2006-02-17
光杆兵大侠是正解
结分啦
回复
zwm1988 2006-02-17
请问光杆兵大侠,URLEncoder是什么
回复
eidolon_warrior 2006-02-17
统一一种字符编码
回复
关于 setCharacterEncoding,请搂主看:

http://www.nk975.com/sswater/myref/index.asp?id=17
回复
response.sendRedirect("b.jsp?method=你好");
这一句不好,给后边的页面带来麻烦。

最好是:
response.sendRedirect("b.jsp?method=" + URLEncoder.encode("你好", "GBK"));
那么,后边就是 new String(param1.getBytes("iso-8859-1"), "GBK");

如果
response.sendRedirect("b.jsp?method=" + URLEncoder.encode("你好", "utf8"));
那么,后边就是 new String(param1.getBytes("iso-8859-1"), "utf8");
回复
hamburger1981 2006-02-17
new String(param1.getBytes("iso-8859-1")); //一句完事
回复
MattLau 2006-02-16
首先看你的编码,默认的是iso-8859-1,如果本页是gbk就要构造一个String
new String(param1.getBytes("iso-8859-1"),"gbk");
强烈推荐使用utf-8编码
回复
zwm1988 2006-02-16
a.jsp和b.jsp都加上了,还是乱码
回复
喝酒吃肉 2006-02-16
再b.jsp加
request.setCharacterEncoding("GBK");
回复
zwm1988 2006-02-16
为什么没人回答我啊
回复
zwm1988 2006-02-16
回复 yxhzj(余华[学习J2EE中]
还是乱码,还是不行
回复
zwm1988 2006-02-16
我的页面编码格式是GBK
Name=new String(Name.getBytes("ISO-8859-1"),"GB2312");
为什么这里是GB2312?

问一下月月鸟大侠
回复
fashchina 2006-02-16
text=new String(text.getBytes("ISO-8859-1"),"GBK");
回复
zwm1988 2006-02-16
月月鸟说的方法我试了,还是一样不行,是乱码
回复
yueyueniao 2006-02-16

String text= request.getParameter("method");
后面加上这句即可:
text=new String(text.getBytes("ISO-8859-1"),"GB2312");
回复
zwm1988 2006-02-16
还是不行啊
打印出'{这种符号
回复
yueyueniao 2006-02-16

String Name=request.getParameter("UserName");
后面加上这句即可:
Name=new String(Name.getBytes("ISO-8859-1"),"GB2312");
回复
china2001ok 2006-02-16
再b.jsp加
request.setCharacterEncoding("GBK");
回复
zwm1988 2006-02-16
谢谢,这个问题解决了
但还有一个问题

a.jsp:
<%@ page contentType="text/html;charset=GBK" %>
<%
request.setCharacterEncoding("GBK");
response.sendRedirect("b.jsp?method=你好");
%>

b.jsp:
<%@ page contentType="text/html;charset=GBK" %>
为为
<%
String text= request.getParameter("method");
System.out.println("text:"+text);
%>
这个text还是乱码,怎么回事啊
回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-02-16 02:58
社区公告
暂无公告