publicString getUrlParameter(String str,String targetstr){
String[] stringarray=str.split(“&“) ;for(inti=0;i
stringarray=stringarray[i].split(“=“);break;
}
}returnstringarray[1];
}//解码方法//以下是对js的escape进行解码privatefinalstaticbyte[] val={0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F};/*** 解码 说明:本方法保证 不论参数s是否经过escape()编码,均能得到正确的“解码”结果
*
*@params
*@return*/publicstaticString unescape(String s) {
StringBuffer sbuf=newStringBuffer();inti=0;intlen=s.length();while(i
}elseif(‘a‘<=ch&&ch<=‘z‘) {//‘a’..’z’ : as it wassbuf.append((char) ch);
}elseif(‘0‘<=ch&&ch<=‘9‘) {//‘0’..’9′ : as it wassbuf.append((char) ch);
}elseif(ch==‘–‘||ch==‘_‘//unreserved : as it was||ch==‘.‘||ch==‘!‘||ch==‘~‘||ch==‘*‘||ch==‘/”|| ch ==‘(‘|| ch ==‘)‘) {sbuf.append((char) ch);
}elseif(ch==‘%‘) {intcint=0;if(‘u‘!=s.charAt(i+1)) {//%XX : map to ascii(XX)cint=(cint<<4)|val[s.charAt(i+1)];
cint=(cint<<4)|val[s.charAt(i+2)];
i+=2;
}else{//%uXXXX : map to unicode(XXXX)cint=(cint<<4)|val[s.charAt(i+2)];
cint=(cint<<4)|val[s.charAt(i+3)];
cint=(cint<<4)|val[s.charAt(i+4)];
cint=(cint<<4)|val[s.charAt(i+5)];
i+=5;
}
sbuf.append((char) cint);
}else{//对应的字符未经过编码sbuf.append((char) ch);
}
i++;
}returnsbuf.toString();
}