今天完成了一个用cookie记录用户名的功能,之前没有考虑到用户的用户名如果是中文会是怎样的影响。就在测试的时候,发现报错,错误信息如下:java.lang.IllegalArgumentException: Control character in cookie value or attribute.
解决办法:
存中文到Cookie的时候先编码:
Cookie cookiename = new Cookie("uname", URLEncoder.encode(uname,"utf-8"));
从Cookie读取的时候再解码:
String unameVal = URLDecoder.decode(cookie.getValue(),"utf-8");