Servlet Cookie如何保存中文

Cookie的name和value都不能使用中文,如果希望在Cookie中使用中文,那么需要先对中文进行URL编码,然后把编码后的字符串放到Cookie中。

1. Cookie向客户端响应中添加中文

String name = URLEncoder.encode("姓名", "UTF-8");//中文编码存储
String value = URLEncoder.encode("张三", "UTF-8");
Cookie c = new Cookie(name, value);
c.setMaxAge(3600);
response.addCookie(c);

2. Cookie客户端请求中获取中文

response.setContentType("text/html;charset=utf-8");
Cookie[] cs = request.getCookies();
if(cs != null) {
   for(Cookie c : cs) {
      String name = URLDecoder.decode(c.getName(), "UTF-8");//解码成中文
       String value = URLDecoder.decode(c.getValue(), "UTF-8");
      String s = name + ": " + value + "<br/>";
      response.getWriter().print(s);
   }
}

Cookie保存只需把中文进行编码,然后读取的时候进行解码成中文即可。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。