用escape()函数传一个参数到服务器保存,如escape("4×10米往返跑"),用unescape()解码后变成“4?0米往返跑”。此外,escape("成绩·得分·档次")解码后中间的间隔号也乱码。特请教各位高手给予解决。谢谢!

解决方案 »

  1.   


    var str = '4×10米往返跑';
    alert(escape(str))
    alert(unescape(escape(str)))没问题啊。
      

  2.   


    //服务端
    Server.UrlDecode(Request.QueryString["字段"]);
      

  3.   

    用GET方法传的?这种东西还是用POST好。
    如果 非要用GET,用encodeURIComponent和decodeURIComponent代替escape和unescape试试。
      

  4.   

    客户端的代码是(javascript代码):
    "jxkp.asp?cj="+escape(vstr);  //vstr的值是“4×10米往返跑”接收是(asp代码):
    dim vcj
    vcj=unescape(Request.QueryString("cj"))得到的就是“4?0米往返跑”。“Server.UrlDecode(Request.QueryString["字段"]);”还没试过,回头试一下。用过decodeURI,没成功。
      

  5.   

    escape是个deprecate属性,而且在ECMA-262 version 5里global object里面以经没有这个属性。escape和encodeURI差不多,对一些特殊字符,如*+-./@_等,都不进行转化的。
      

  6.   

    escape()目前是一个ECMscript 3.0中的函数,这个函数目前处于被废弃状态,代替它的是 encodeURI 和decodeURI..
    出现你这种情况的原因是escape只支持ASCaLL编码,而encodeURL是完全支持unicode编码的,另外,如果要将URL中的://等也编码 ,就得使用更加严格的encodeURIComponent和decodeURIComponent编码!!!!