實(shí)現(xiàn)一個(gè)功能需要把一個(gè)中文詞語編碼后拼到百度的URL中,在新窗口打開,實(shí)現(xiàn)搜索,需要一個(gè)類似與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>
用這樣的辦法調(diào)用:
<script language="javascript" type="text/javascript">
alert(UrlEncode("孫毓波大好人"));
</script>