jsp中取得Cookie的信息无法获得中文信息
<%@pagecontentType="text/html;charset=gb2312"%><html><title>取得Cookie的信息</title><body>...
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<title>取得Cookie的信息</title>
<body>
<%
Cookie user1=new Cookie("id1","张小忠");
Cookie user2=new Cookie("id2","asf");
response.addCookie(user1);
response.addCookie(user2);
%>
<%
Cookie[] allcookie=request.getCookies();
for(int i=0;i<allcookie.length;i++)
{
String idx=allcookie[i].getName();
String value=allcookie[i].getValue();
out.print(idx+":");
out.print(value+"<br>");
}
%>
</body>
</html>
上面那个经Tomcat运行之后
org.apache.jasper.JasperException: 张小忠
后来我改成这样.
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<title>取得Cookie的信息</title>
<body>
<%
String str1="张小忠";
String str =new String(str1.getBytes("iso8859-1"));
Cookie user1=new Cookie("id1",str);
Cookie user2=new Cookie("id2","asf");
response.addCookie(user1);
response.addCookie(user2);
%>
<%
Cookie[] allcookie=request.getCookies();
for(int i=0;i<allcookie.length;i++)
{
String idx=allcookie[i].getName();
String value=allcookie[i].getValue();
out.print(idx+":");
out.print(value+"<br>");
}
%>
</body>
</html>
运行之后显示
JSESSIONID:799E29E72168C16D2425D0C730BF2875
id1:???
id2:asf
麻烦各位..帮我解决这个问题..在下感激不尽
乱码用什么方法可以读取成中文...??? 展开
<html>
<title>取得Cookie的信息</title>
<body>
<%
Cookie user1=new Cookie("id1","张小忠");
Cookie user2=new Cookie("id2","asf");
response.addCookie(user1);
response.addCookie(user2);
%>
<%
Cookie[] allcookie=request.getCookies();
for(int i=0;i<allcookie.length;i++)
{
String idx=allcookie[i].getName();
String value=allcookie[i].getValue();
out.print(idx+":");
out.print(value+"<br>");
}
%>
</body>
</html>
上面那个经Tomcat运行之后
org.apache.jasper.JasperException: 张小忠
后来我改成这样.
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<title>取得Cookie的信息</title>
<body>
<%
String str1="张小忠";
String str =new String(str1.getBytes("iso8859-1"));
Cookie user1=new Cookie("id1",str);
Cookie user2=new Cookie("id2","asf");
response.addCookie(user1);
response.addCookie(user2);
%>
<%
Cookie[] allcookie=request.getCookies();
for(int i=0;i<allcookie.length;i++)
{
String idx=allcookie[i].getName();
String value=allcookie[i].getValue();
out.print(idx+":");
out.print(value+"<br>");
}
%>
</body>
</html>
运行之后显示
JSESSIONID:799E29E72168C16D2425D0C730BF2875
id1:???
id2:asf
麻烦各位..帮我解决这个问题..在下感激不尽
乱码用什么方法可以读取成中文...??? 展开
1个回答
展开全部
汉字经常会有这样的问题,我用笨办法,把汉字编码后存储,用的时候再解码
参考 java.net.URLEncoder 和 java.net.URLDecoder 这两个类看看吧。
=========== Sorce ============
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<title>取得Cookie的信息</title>
<body>
<%
String str1="张小忠"+(new java.util.Date()).toString();
String str =new String(str1.getBytes("iso8859-1"));
//Cookie user1=new Cookie("id1",str);
Cookie user1=new Cookie("id1",java.net.URLEncoder.encode(str1,"gb2312"));
Cookie user2=new Cookie("id2","asf");
response.addCookie(user1);
response.addCookie(user2);
%>
<%
Cookie[] allcookie=request.getCookies();
for(int i=0;i<allcookie.length;i++)
{
String idx=allcookie[i].getName();
String value=allcookie[i].getValue();
out.print(idx+":");
value = java.net.URLDecoder.decode(value,"gb2312");
out.print(value+"<br>");
}
%>
</body>
</html>
============ End ==========
参考 java.net.URLEncoder 和 java.net.URLDecoder 这两个类看看吧。
=========== Sorce ============
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<title>取得Cookie的信息</title>
<body>
<%
String str1="张小忠"+(new java.util.Date()).toString();
String str =new String(str1.getBytes("iso8859-1"));
//Cookie user1=new Cookie("id1",str);
Cookie user1=new Cookie("id1",java.net.URLEncoder.encode(str1,"gb2312"));
Cookie user2=new Cookie("id2","asf");
response.addCookie(user1);
response.addCookie(user2);
%>
<%
Cookie[] allcookie=request.getCookies();
for(int i=0;i<allcookie.length;i++)
{
String idx=allcookie[i].getName();
String value=allcookie[i].getValue();
out.print(idx+":");
value = java.net.URLDecoder.decode(value,"gb2312");
out.print(value+"<br>");
}
%>
</body>
</html>
============ End ==========
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询