Java servlet中cookie中文亂碼解決
阿新 • • 發佈:2019-01-30
由於之前出現錯誤: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");
}
}