1. 程式人生 > >cookie報錯java.lang.IllegalArgumentException【原創】

cookie報錯java.lang.IllegalArgumentException【原創】

之前完成了一個用cookie記錄使用者名稱的功能,之前沒有考慮到使用者的使用者名稱如果是中文會是怎樣的影響。就在星期五測試的時候,用了一箇中文去登陸,發現報錯,錯誤資訊如下:

java.lang.IllegalArgumentException:

後來上網查了下,才知道原來是轉碼的問題,解決方法如下;

J2EE Doc裡面的,cookies只支援ASCII字元,而且不能有逗號,分號,
空白。或者以$開頭。名字在建立後不能改變。如果要儲存中文的,先用URLEcode編碼,在存入,取出的時候,用decode解碼。。。

    Cookie c = new Cookie("Name",URLEncoder.encode(pName));
c.setMaxAge(30);
response.addCookie(c);

if(cookies!=null){
for(int i=0;i<cookies.length;i++){
       if(cookies[i].getName().equals("Love"))
      pLove=URLDecoder.decode(cookies[i].getValue());}
      }