jsp中cookie传值中文乱码问题如何解决,快整死我了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp中cookie传值中文乱码问题如何解决,快整死我了相关的知识,希望对你有一定的参考价值。

存数据页面
nam = new String(request.getParameter("st_name").getBytes("iso-8859-1")); nam = URLEncoder.encode(nam,"GB2312");
if(nam != null)
cookie = new Cookie("nam",nam);
cookie.setMaxAge(30*60);
response.addCookie(cookie);


取数据页面
if(cook[i].getName().equals("nam"))
request.setAttribute("senam", cook[i].getValue());
senam = request.getAttribute("senam").toString();
senam = new String(senam.getBytes("ISO-8859-1"),"gb2312");
senam = URLDecoder.decode(senam, "GB2312");


输入“你好”输出为“?羲?”页面的编码方式是utf-8

jsp中cookie传值中文乱码问题:
通过java.net.URLEncoder对中文编码,然后通过java.net.URLDecoder对其进行解码。
添加cookie:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>set cookie</title>
</head>
<body>
<%
String str = "这是中文的cookie值";
Cookie c = new Cookie("str",java.net.URLEncoder.encode(str));
c.setMaxAge(24*3600);
//向客户端添加cookie对象
response.addCookie(c);
%>
</body>
</html>
接收cookie:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>get-cookie-value -- by www.phpddt.com</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
Cookie[] cookies = request.getCookies();
for(Cookie c : cookies)

//如果有名为str的cookie值,则是要需找的
if(c.getName().equals("str"))

out.print(java.net.URLDecoder.decode(c.getValue()));


%>
</body>
</html>
参考技术A request.setCharacterEncoding("GB2312");
JSP将请求默认是使用ISO-8859-1,而大多数浏览器都是以UTF-8编码发送请求数据,
所以,如果不设置编码,那么就会导致乱码。本回答被提问者采纳

以上是关于jsp中cookie传值中文乱码问题如何解决,快整死我了的主要内容,如果未能解决你的问题,请参考以下文章

怎么解决jsp页面get传值中文乱码问题

两个HTML页面之间传值时中文出现乱码,怎样解决???

js 传值url 乱码问题

href 传值 中文乱码问题

jsp 传值jsp 数据库 乱码解决的攻略 全套

为啥jsp页面中传入JavaBean对象里面的中文参数在调试时显示成员变量是乱码?