实现一个功能需要把一个中文词语编码后拼到百度的URL中,在新窗口打开,实现搜索,需要一个类似与PHP中的URlencode的功能,找了好久都没找到。escape、encodeURI、encodeURIComponent都不行。忙活了半天,终于让我找到了,赶紧收藏下来。
<script language="vbscript"> 
Function str2asc(strstr) 
str2asc = hex(asc(strstr)) 
End Function 
Function asc2str(ascasc) 
asc2str = chr(ascasc) 
End Function 
</script>
<script language="javascript" type="text/javascript">
function UrlEncode(str){ 
   var ret=""; 
   var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; 
   for(var i=0;i<str.length;i++){ 
   var chr = str.charAt(i); 
     var c=str2asc(chr); 
     if(parseInt("0x"+c) > 0x7f){ 
       ret+="%"+c.slice(0,2)+"%"+c.slice(-2); 
     }else{ 
       if(chr==" ") 
         ret+="+"; 
       else if(strSpecial.indexOf(chr)!=-1) 
         ret+="%"+c.toString(16); 
       else 
         ret+=chr; 
     } 
   } 
   return ret; 
}
</script>
用这样的办法调用:
<script language="javascript" type="text/javascript">
alert(UrlEncode("孙毓波大好人"));
</script>