http://10.246.30.18:9704/analytics/saw.dll?Dashboard&_scid=DQNGaG9yUNw&PortalPath=/shared/HZBIEE/_portal/%e7%bb%9f%e4%b8%80%e8%a7%86%e5%9b%be&Page=%e6%95%b0%e6%8d%ae%e5%ae%a1%e6%89%b9-%e9%a1%b55&Done=Dashboard%26PortalPath%3d/shared/HZBIEE/_portal/%25e7%25bb%259f%25e4%25b8%2580%25e8%25a7%2586%25e5%259b%25be%26Page%3d%25e6%2595%25b0%25e6%258d%25ae%25e5%25ae%25a1%25e6%2589%25b9-%25e9%25a1%25b55%26ViewState%3dq9plrt8295b287gi1bj0g3c41e上面这段URL地址,如果我直接用A标签链接的话,没问题。但是如果我将这段URL地址传给JS的方法再赋给location的话,就会变成http://10.246.30.18:9704/analytics/saw.dll?Dashboard&_scid=DQNGaG9yUNw&PortalPath=/shared/HZBIEE/_portal/统一视图&Page=数据审批-页5&Done=Dashboard&PortalPath=/shared/HZBIEE/_portal/%e7%bb%9f%e4%b8%80%e8%a7%86%e5%9b%be&Page=%e6%95%b0%e6%8d%ae%e5%ae%a1%e6%89%b9-%e9%a1%b55&ViewState=q9plrt8295b287gi1bj0g3c41e请问有没有办法解决呢?急啊。。谢谢各位了。编码和解码搞尽了,都没效果。

解决方案 »

  1.   

    从数据库取出来后是http://10.246.30.18:9704/analytics/saw.dll?Dashboard&_scid=DQNGaG9yUNw&PortalPath=/shared/HZBIEE/_portal/%e7%bb%9f%e4%b8%80%e8%a7%86%e5%9b%be&Page=%e6%95%b0%e6%8d%ae%e5%ae%a1%e6%89%b9-%e9%a1%b55&Done=Dashboard%26PortalPath%3d/shared/HZBIEE/_portal/%25e7%25bb%259f%25e4%25b8%2580%25e8%25a7%2586%25e5%259b%25be%26Page%3d%25e6%2595%25b0%25e6%258d%25ae%25e5%25ae%25a1%25e6%2589%25b9-%25e9%25a1%25b55%26ViewState%3dq9plrt8295b287gi1bj0g3c41e这样的的,直接给a标签链接没问题。。但是作参数传给JS处理就是不行。。请问有什么办法没?
      

  2.   

    URL值如何取得,又如何传给js方法的?
      

  3.   

    javascript:top.location='http://10.246.30.18:9704/analytics/saw.dll?Dashboard&_scid=DQNGaG9yUNw&PortalPath=/shared/HZBIEE/_portal/%e7%bb%9f%e4%b8%80%e8%a7%86%e5%9b%be&Page=%e6%95%b0%e6%8d%ae%e5%ae%a1%e6%89%b9-%e9%a1%b55&Done=Dashboard%26PortalPath%3d/shared/HZBIEE/_portal/%25e7%25bb%259f%25e4%25b8%2580%25e8%25a7%2586%25e5%259b%25be%26Page%3d%25e6%2595%25b0%25e6%258d%25ae%25e5%25ae%25a1%25e6%2589%25b9-%25e9%25a1%25b55%26ViewState%3dq9plrt8295b287gi1bj0g3c41e'开始是传给方法,看传给方法不行,就直接这样写的。。写了还是不行。。
      

  4.   

    用转义
    JS中对网址进行转义有三个方法,分别是escape(), encodeURI(), encodeURIComponent()
    这三个方法都是把网址中的非ASCII字符转为%XX的形式三个方法的区别是分别有些字符是不做转义的:
    escape()              - @*/+
    encodeURI()           - !@#$&*()=:/;?+'
    encodeURIComponent()  - !*()'
      

  5.   

    js 是 utf-8编码吧  你的可能是 gb2312所以会乱
      

  6.   

    我就从库中取出来后..存在request里面,然后页面就取值...如果直接给链接没问题..<a href="javascript:to('${request.url}')">查看</a>这样调的JS.
      

  7.   

    放在JS里要转义. encodeURI() ...
      

  8.   

    找到问题的所在了..%e7%bb%9f%e4%b8%80%e8%a7%86%e5%9b%be&Page=%e6%95%b0%e6%8d%ae%e5%ae%a1%e6%89%b9-%e9%a1%b55%25e7%25bb%259f%25e4%25b8%2580%25e8%25a7%2586%25e5%259b%25be%26Page%3d%25e6%2595%25b0%25e6%258d%25ae%25e5%25ae%25a1%25e6%2589%25b9-%25e9%25a1%25b55
    其实是同一段汉字..统一视图&Page=数据审批-页5只不过,第二段是将%再编了一次码,变成了%25郁闷实在第一段才是真正的UTF-8编码后的代码,怎么会变乱码..请问有什么特殊方法处理这种编码的?
      

  9.   


    对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent
      

  10.   

    我6说了,用<a href="#" onclick="to('${request.url}')">,怎么不试一下呢?
      

  11.   

    你可以在传递之前先将url用escape(url)一下,然后在用的时候使用unescape(url) have a try