jsp乱码问题,请教各位了
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是乱码,怎么回事?
问题点数:50、回复次数:23Top
1 楼infowain(infowain)回复于 2006-02-16 15:16:30 得分 3
request.setCharacterEncoding("GBK");Top
2 楼usaspy(行走的鱼)回复于 2006-02-16 15:26:42 得分 3
request.setCharacterEncoding("UTF-8");错了,应该是GBK,表示所有对该页面的请求都用GBK编码
你现在的情况是:c请求b页面就可以把所带的参数用UTF-8来编,自然有问题Top
3 楼yxhzj(余华[学习J2EE中])回复于 2006-02-16 15:29:47 得分 3
一下子gkb,一下子gb2312
最后还来个utf8,还真行Top
4 楼zwm1988(风清云淡)回复于 2006-02-16 15:29:58 得分 0
谢谢,这个问题解决了
但还有一个问题
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还是乱码,怎么回事啊Top
5 楼china2001ok(开心拽拽)回复于 2006-02-16 15:32:55 得分 3
再b.jsp加
request.setCharacterEncoding("GBK");
Top
6 楼yueyueniao(月月鸟)回复于 2006-02-16 15:38:48 得分 5
在
String Name=request.getParameter("UserName");
后面加上这句即可:
Name=new String(Name.getBytes("ISO-8859-1"),"GB2312");Top
7 楼zwm1988(风清云淡)回复于 2006-02-16 15:39:20 得分 0
还是不行啊
打印出'{这种符号Top
8 楼yueyueniao(月月鸟)回复于 2006-02-16 15:43:31 得分 5
在
String text= request.getParameter("method");
后面加上这句即可:
text=new String(text.getBytes("ISO-8859-1"),"GB2312");
Top
9 楼zwm1988(风清云淡)回复于 2006-02-16 15:54:00 得分 0
月月鸟说的方法我试了,还是一样不行,是乱码Top
10 楼yxhzj(余华[学习J2EE中])回复于 2006-02-16 15:57:28 得分 3
text=new String(text.getBytes("ISO-8859-1"),"GBK");Top
11 楼zwm1988(风清云淡)回复于 2006-02-16 16:00:24 得分 0
我的页面编码格式是GBK
Name=new String(Name.getBytes("ISO-8859-1"),"GB2312");
为什么这里是GB2312?
问一下月月鸟大侠Top
12 楼zwm1988(风清云淡)回复于 2006-02-16 16:02:12 得分 0
回复 yxhzj(余华[学习J2EE中]
还是乱码,还是不行Top
13 楼zwm1988(风清云淡)回复于 2006-02-16 16:22:33 得分 0
为什么没人回答我啊Top
14 楼brucejia(大碗喝酒,大块吃肉,谨防高血压)回复于 2006-02-16 16:33:00 得分 3
再b.jsp加
request.setCharacterEncoding("GBK");Top
15 楼zwm1988(风清云淡)回复于 2006-02-16 16:47:57 得分 0
a.jsp和b.jsp都加上了,还是乱码Top
16 楼MattLau(小辉)回复于 2006-02-16 17:17:06 得分 3
首先看你的编码,默认的是iso-8859-1,如果本页是gbk就要构造一个String
new String(param1.getBytes("iso-8859-1"),"gbk");
强烈推荐使用utf-8编码Top
17 楼hamburger1981(曾经的汉堡包)回复于 2006-02-17 08:09:06 得分 3
new String(param1.getBytes("iso-8859-1")); //一句完事Top
18 楼sswater(光杆兵)回复于 2006-02-17 09:02:14 得分 10
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");
Top
19 楼sswater(光杆兵)回复于 2006-02-17 09:19:57 得分 3
关于 setCharacterEncoding,请搂主看:
http://www.nk975.com/sswater/myref/index.asp?id=17Top
20 楼eidolon_warrior(精灵_战士)回复于 2006-02-17 09:24:32 得分 3
统一一种字符编码Top
21 楼zwm1988(风清云淡)回复于 2006-02-17 09:54:27 得分 0
请问光杆兵大侠,URLEncoder是什么Top
22 楼zwm1988(风清云淡)回复于 2006-02-17 10:03:37 得分 0
光杆兵大侠是正解
结分啦Top
23 楼sswater(光杆兵)回复于 2006-02-17 10:06:07 得分 0
http://java.sun.com/j2se/1.4.2/docs/api/java/net/URLEncoder.htmlTop




