escape不能对"+"号编码,用escape编码后还要手动处理"+"号

解决方案 »

  1.   

    function toUTF8(szInput)
    {
    var wch,x,uch="",szRet=""; for (x=0; x<szInput.length; x++)
    {
    wch=szInput.charCodeAt(x);
    if (!(wch & 0xFF80))
    {
    szRet += String.fromCharCode(wch);
    }
    else if (!(wch & 0xF000))
    {
    uch = "%" + (wch>>6 | 0xC0).toString(16) + 
      "%" + (wch & 0x3F | 0x80).toString(16);
    szRet += uch; 
    }
    else
    {
    uch = "%" + (wch >> 12 | 0xE0).toString(16) + 
      "%" + (((wch >> 6) & 0x3F) | 0x80).toString(16) +
      "%" + (wch & 0x3F | 0x80).toString(16);
    szRet += uch; 
    }
    }
    return(szRet);
    }
      

  2.   


    var aaa='<%=server.URLEncoding('+str+')%>';不知道行不
      

  3.   

    小弟先在这里谢谢各位了!
    还没按你们的方法试过呢!呵呵昨晚做梦的时候想到一个另类的解决办法,就是把这个字符串赋到另一个隐藏的表单的输入框里,再提交,自动就编码了,嘿嘿!
    各位大哥能不能推荐几本关于JAVASCRIPT的书啊,要详细一点的,专业一点的,高级一点的,厚一点的,呵呵
      

  4.   

    找什么书呀,msdn->msdn Library->web开发->脚本撰写->sdk文档->windows script Technologies->jScript->Reference,msdn不要太老,否则不是此路径
      

  5.   

    seeu1688(kangel) 是正解,不过要IE5.5以上才支持
      

  6.   

    <script>
    function urlencode(str)
    {
    return str.replace(/[\s\$\(\)\+\.\[\?\^\{\|\\~`!@#_/-=]/g,function($1){return                                                                         encodeURIComponent($1)
                                                         });
    }
    </script>
    <?=$val?><a href="javascript:window.location='test.php?val='+urlencode('#0871+-+= 床#')">go</a>
      

  7.   

    楼主,你可以试一下.http://www.baidu.com/ 在里面输入中文
    然后,再点搜索.
    看一下地址栏
    http://www.baidu.com/baidu?word=%BB%D2%B6%B9%B1%A6%B1%A6&cl=3
    word=%BB%D2%B6%B9%B1%A6%B1%A6  这就是经过Server.URLEnCode(strURL)转换的.
    即<%=Server.URLEnCode(strURL)%>---------------------------------------
    另:楼主,你说的把这个字符串赋到另一个隐藏的表单的输入框里,再提交,自动就编码了,嘿嘿!这种方法,一些浏览器(比如IE)才能将HTTP请求发送到服务器前,
    这些,浏览器会自动对不合法的字符进行转换.但是大多数浏览器是不能进行转换.附: BOOKHTML
    http://vip.5d.cn/friday/upload/dhtml html&css.chm Microsoft Windows脚本技术
    http://vip.5d.cn/friday/upload/SCRIPT56.chm