客户端500异常-- An invalid character [32] was present in the Cookie value

在客户端的异常信息提示:An invalid character [32] was present in the Cookie value
异常描述为
在这里插入图片描述

大概意思就是有一个空格无法解析,注意上方提示信息的【32】;32代表了空格的ASSIC码值,
原因:虽然tomcat8之后支持cookie服务器解析支持中文了,但是还是无法解析特殊字符,在下面代码中我的日期字符串中含有一个空格,无法解析。

Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str_date = simpleDateFormat.format(date);
解决方法一:

删除代码中字符串的空格。

解决方法二:

存储数据时使用URL编码将字符串编码

//因为日期中有空格所以需要 URL编码
str_date = URLEncoder.encode(str_date, "utf-8");

再在响应数据的时候使用URL解码该字符串

 //使用URL解码
str_date= URLDecoder.decode(str_date, "utf-8");
//调用响应输出字符流并打印
response.getWriter().write("<h1>欢迎再次登录,您上次访问时间为:"+str_date+"</h1>");

版权声明:本文为qq_45043813原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。