在客户端的异常信息提示: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>");