js的URL Encode与Decode
<script language = "javascript">
function go_yw_search(keyword,area)
{
document.getElementById('queryKey').value = keyword;
document.getElementById('a').value = area;
document.getElementById('querytype').value = 6;
//alert(keyword);
//return false;
//KeyCheck(document.queryActionForm);
//return false;
document.queryActionForm.submit();
return true;
}
function modi_str(){ if(document.all.text.method.checked){ if(document.all.text.decode.value!=""){ document.all.text.encode.value = UrlEncode(document.all.text.decode.value); }else{ document.all.text.decode.value = UrlDecode(document.all.text.encode.value); } }else{ if(document.all.text.encode.value!=""){ document.all.text.decode.value = UrlDecode(document.all.text.encode.value); }else{ document.all.text.encode.value = UrlEncode(document.all.text.decode.value); } } }
String.prototype.GetCount = function(str,mode){ return eval("this.match(/("+str+")/g"+(mode?"i":"")+").length"); }
function UrlDecode(str)
{
var i,temp;
var result="";
for(i=0;i<str.length;i++)
{
if(str.charAt(i)=="%")
{
if(str.charAt(++i)=="u")
{
temp=str.charAt(i++) + str.charAt(i++) + str.charAt(i++) + str.charAt(i++) + str.charAt(i);
result += unescape("%" + temp);
}
else
{
temp = str.charAt(i++) + str.charAt(i);
if(eval("0x"+temp)<=160)
{
result += unescape("%" + temp);
}
else
{
temp += str.charAt(++i) + str.charAt(++i) + str.charAt(++i);
result += Decode_unit("%" + temp);
}
}
}
else
{
result += str.charAt(i);
}
}
return result;
}
function UrlEncode(str){ var i,temp,p,q; var result=""; for(i=0;i<str.length;i++){ temp = str.charCodeAt(i); if(temp>=0x4e00){ execScript("ascCode=hex(asc(\""+str.charAt(i)+"\"))", "vbscript"); result+=ascCode.replace(/(.{ 2 })/g, "%$1"); }else{ result+=escape(str.charAt(i)); } } return result; }
function Decode_unit(str)
{
var p,q = "";
if(str.GetCount("%")!=2) return str;
p=eval("0x" + str.split("%")[1]);
q=eval("0x" + str.split("%")[2]);
if(p<160 || q<160) return unescape(str);
str=str.replace(/%/g,"");
execScript("temp=&H"+str, "vbscript");
execScript("result=chr("+temp+")", "vbscript");
return result;
}
//得到地址栏传递参数的函数
function QueryString(qs)
{
var s = location.href;
s = s.replace("?","?&").split("&");
var re = "";
var str = "";
for(i=1;i<s.length;i++)
if(s[i].indexOf(qs+"=")==0)
re = s[i].replace(qs+"=","");
re = UrlDecode(re);
return re;
}
function QueryStringArea(qs)
{
var s = location.href;
s = s.replace("?","?&").split("&");
var re = "";
for(i=1;i<s.length;i++)
if(s[i].indexOf(qs+"=")==0)
re = s[i].replace(qs+"=","");
re = UrlDecode(re);
if (re == "") re= 'B000000CB-全部市';
return re;
}
</script>
浙公网安备 33010602011771号