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

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

jsp中cookie传值中文乱码问题:

通过java.net.URLEncoder对中文编码,然后通过java.net.URLDecoder对其进行解码。

添加cookie:

<%@ page language="java" contentType="text/htmlcharset=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/htmlcharset=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/htmlcharset=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/htmlcharset=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>

中文乱码解决方案

step1: 在html文件中,添加 <meta http-equiv="content-type" content="text/htmlcharset=utf-8">另外,表单的提交方式必须是post。

step2: 在服务器端,使用servlet读取表单中的请求参数时: request.setCharacterEncoding("utf-8")这行代码的作用:设置解码时的编码格式。

step3: 如果servlet输出中文,要添加如下代码。 response.setContentType("text/htmlcharset=utf-8")这行代码的作用:

作用1: 指定out.println输出时所使用的编码。

作用2: 生成一个消息头content-type:text/htmlcharset=utf-8 告诉浏览器,返回的数据类型是html,编码是utf-8。这样,浏览器一定会以 指定的编码来显示该页面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11738787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存