您的位置:首页 > 编程语言 > Java开发

Java servlet中cookie中文乱码解决

2015-10-10 09:53 441 查看
由于之前出现错误:java.lang.IllegalArgumentException: Control character in cookie value or attribute.

是编码问题造成的。

故先在写入cookie时进行编码:URLEncoder.encode(name, "utf-8");

再在从cookie中读出时解码:URLDecoder.decode(co.getValue(),
"utf-8");

之前写入cookie的代码:

//将name保存到cookie中
Cookie nameCookie=new Cookie("userName",name);
//添加cookie
response.addCookie(nameCookie);


之前读取cookie的代码:

for (Cookie co : cookies) {
String cookieName = co.getName();
if (cookieName.equals("userName")) {
name = co.getValue();
}
}


更改后写入cookie的代码:

//将name保存到cookie中
String urlName=URLEncoder.encode(name, "utf-8");
Cookie nameCookie=new Cookie("userName",urlName);
//添加cookie
response.addCookie(nameCookie);


更改后读取cookie的代码:

for (Cookie co : cookies) {
String cookieName = co.getName();
if (cookieName.equals("userName")) {
name =  URLDecoder.decode(co.getValue(), "utf-8");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: