问题:
Cookie cookie = new Cookie("cookieName", "Cookie值");
resp.addCookie(cookie);
目标URL访问此方法时,会抛出异常:
java.lang.IllegalArgumentException: Control character in cookie value or attribute
描述:
环境:tomcat7,Java7
具体问题:cookie写入中文会引发异常。所以这样看来Cookie默认支持的编码方式是ASCII码。不能对中文进行编码和解码。
解决方式:
创建Cookie的时候:
Cookie cookie = new Cookie(name, URLEncoder.encode(value, "UTF-8"));
读取Cookie的时候:
String value = URLDecoder.decode(cookie.getValue(), "UTF-8");