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是乱码,怎么回事?
...全文
515 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
低调的小青蛙 2006-02-17
  • 打赏
  • 举报
回复
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
  • 打赏
  • 举报
回复
统一一种字符编码
低调的小青蛙 2006-02-17
  • 打赏
  • 举报
回复
关于 setCharacterEncoding,请搂主看:

http://www.nk975.com/sswater/myref/index.asp?id=17
低调的小青蛙 2006-02-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还是乱码,怎么回事啊
加载更多回复(3)

81,091

社区成员

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

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