使用Cookie时报错:Control character in cookie value, consider BASE64 encoding your val

使用Cookie存信息时,要是有中文,添加到response中时就会报错:

Control character in cookie value, consider BASE64 encoding your value
具体什么意思就不管了(反正是中文乱码导致的),只说它的解决办法。

 

1、在拼接Cookie的value值时,使用“java.net.URLEncoder.decode()”方法将其转码:

 

cookieValue = URLDecoder.decode(cookieValue,"UTF-8");
 
2、在Java代码里取值时,先用“java.net.URLDecoder.decode()”方法再编码:
cookieValue = URLDecoder.decode(cookieValue,"UTF-8");
 这样子就能得到正常的数据了。
 
3、页面上使用JS获取Cookie中的值,通过用unescape方法,但是不知道为什么,我用这个方法时,中文得到的还是乱码。改成下面这样子就能正常获取了:
var cookieValue = decodeURI(cookieValue);//对 encodeURI() 函数编码过的 URI 进行解码。
cookieValue = unescape(cookieValue);//对通过 escape() 编码的字符串进行解码
 

你可能感兴趣的:(中文乱码,cookie)