通过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。这样,浏览器一定会以 指定的编码来显示该页面。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)