秋水写过urlEncode,不过光映射字典就几十k了,帖不上来。试试我这个:
<SCRIPT LANGUAGE="JavaScript">
<!--
function urlEncode(st){
return showModalDialog('javascript:document.write("<iframe name=I style=\'display:none\'></iframe><form name=F method=get target=I><input type=hidden name=S></form>");document.F.S.value=unescape(\''+escape(st)+'\');document.F.submit();setTimeout(\'returnValue=(I.location.search.substr(3));close()\',0);',null,"dialogHeight:0px;dialogWidth:0px;dialogTop:-100px;dialogLeft:-100px");
}
//-->
</SCRIPT>
<input name=srcString>
<button onclick="alert(urlEncode(srcString.value))">test</button>我用的IE6SP1,不支持about:,所以用javascript:绕过。不知道对低版本的浏览器支持性如何。

解决方案 »

  1.   

    我问的是: Javascript中如何实现Php中的urlencode编码
      

  2.   

    我答的难道不是?
    要不试试这个,用了vb的
    <script language="vbscript">
    function urlencoding(vstrin)
    dim i,strreturn
        strreturn = ""
        for i = 1 to len(vstrin)
            thischr = mid(vstrin,i,1)
            if abs(asc(thischr)) < &hff then
                strreturn = strreturn & thischr
            else
                innercode = asc(thischr)
                if innercode < 0 then
                    innercode = innercode + &h10000
                end if
                hight8 = (innercode  and &hff00)\ &hff
                low8 = innercode and &hff
                strreturn = strreturn & "%" & hex(hight8) &  "%" & hex(low8)
            end if
        next
        urlencoding = strreturn
    end function
    </script><script language="javascript">
    alert(urlencoding("中文Abc"))
    </script>
      

  3.   

    TO  emu_ston(吃的就是没文化的亏) :    非常感谢你!! 呵呵~~~~    可是你的这个函数中不支持下面这些符号啊~~~    如:  % & ' " / \   ......
      

  4.   

    TO  emu_ston(吃的就是没文化的亏) :            另外,可以告诉我你上面的函数支持的字的函数吗?~~~            谢了~~  我现在很急~~~~:(
      

  5.   

    呵呵忘了%号在传给modaldialog的时候会自动和后面的两个16进制数被自动decode。
    试试这样:<SCRIPT LANGUAGE="JavaScript">
    <!--
    function urlEncode(st){
    return showModalDialog('javascript:document.write("<iframe name=I style=\'display:none\'></iframe><form name=F method=get target=I><input type=hidden name=S></form>");document.F.S.value=unescape(\''+escape(st).replace(/%/g,"%25")+'\');document.F.submit();setTimeout(\'returnValue=(I.location.search.substr(3));close()\',0);',null,"dialogHeight:0px;dialogWidth:0px;dialogTop:-100px;dialogLeft:-100px");
    }
    //-->
    </SCRIPT>
    <input name=srcString>
    <button onclick="alert(urlEncode(srcString.value))">test</button>
      

  6.   

    TO  emu_ston(吃的就是没文化的亏) :
    呵呵 其实很简单 把你发的那个函数修改一下就OK了~~~~~
    回来给分~~~~function urlencoding(vstrin)
    dim i,strreturn
    strreturn = ""
    for i = 1 to len(vstrin)
    thischr = mid(vstrin,i,1)
    if abs(asc(thischr)) > &h20 and abs(asc(thischr)) < &h7f then
    strreturn = strreturn & "%" & hex(abs(asc(thischr)))
    elseif abs(asc(thischr)) < &hff then
    strreturn = strreturn & thischr
    else
    innercode = asc(thischr)
    if innercode < 0 then
    innercode = innercode + &h10000
    end if
    hight8 = (innercode  and &hff00)\ &hff
    low8 = innercode and &hff
    strreturn = strreturn & "%" & hex(hight8) &  "%" & hex(low8)
    end if
    next
    urlencoding = strreturn
    end function