便開始著手解決這個問題
在網上搜索了一下
得到原因是
值含有控制字元所以無法保存到cookie裡
可能是中文字在編碼時出現亂碼導致有控制字符的出現
解決的方法就是存值跟取值都進行編碼的動作
public void addCookie(String name, String value)
{
int maxAge = 3600 * 24 * 30;
try{
if (value == null) {
maxAge = 0;
value = "";
}else{
value = URLEncoder.encode(value,"UTF-8");
}
}catch(Exception e){
}
Cookie cookie = new Cookie(name, value);
cookie.setMaxAge(maxAge);
cookie.setPath("/");
response.addCookie(cookie);
}
public String getCookie(String name)
{
String value = "";
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
Cookie c = cookies[i];
if (c.getName().equals(name)) {
try{
value = URLDecoder.decode(c.getValue(),"UTF-8");
}catch(Exception e){
}
return value;
}
}
}
return value;
}
沒有留言:
張貼留言