url中有中文和“+”,如果不经过“+”的编码传递到后台后肯定是变成“ ”,
所以在JS中通过
url=encodeURI(encodeURI(url));
url=url.replace(/\+/g,'%2B');
处理后,传递到后台,
直接request.getParameter是正确的存在“+”,
但是URLDecoder.decode()后“+”还是变成空格了。我必须要解码传过来的中文啊
请各位看看应该怎么解决

解决方案 »

  1.   

    encodeURIComponent()它的用法与encodeURI()相同,它可以将参数中的中文、特殊字符进行转义,而不影响整个url.
      

  2.   

    encodeURIComponent()转义的范围太广了,所以没有用。
    现在我用以下方法解决问题了:
    url=encodeURI(encodeURI(url).replace(/\+/g,'%2B'));
    然后在后台正常解码。
    还是对两次encodeURI的含义不是很理解
      

  3.   

    专门写一个js,里面写上一个共同的加密方法;该加密方法实现接受一个字符串参数,将字符串中的特殊参数转换为非特殊的;+ ---- %FFFFFF
    # ---- %FFFAFA
    ........
    那解密方法就是还原一下喽.......
    其实这个应该是在开发项目的时候,直接封装好,就啥事也某有了.....