url传递参数中有特殊字符时前后台处理 将参数通过encodeURIComponent()函数编译一遍再传值即可。

在项目中用ajax post 传递参数到后台,发现我的参数中有特殊字符会被过滤掉或者转义,但是有时候后台需要这些字符。解决方法记录如下

比如windows创建文件夹不支持特殊字符串:/^.*[\/*:"?<>|].*$/

传参的时候前台js使用encodeURIComponent()函数编码转义:

var keyword=encodeURIComponent($.trim($('#txtKeyword').val()));

后台使用 java.net.URLDecoder类中的方法解析:

String keyword = URLDecoder.decode(rquest.getParameter("keyword"), "UTF-8");

java后台编码和解码:

String keywords_e=URLEncoder.encode(keywords,"UTF-8");

String keywords_d=URLEncoder.decode(keywords,"UTF-8");

比如windows创建文件夹不支持特殊字符串:/^.*[\/*:"?<>|].*$/

传参的时候前台js使用encodeURIComponent()函数编码转义:

var keyword=encodeURIComponent($.trim($('#txtKeyword').val()));

后台使用 java.net.URLDecoder类中的方法解析:

String keyword = URLDecoder.decode(rquest.getParameter("keyword"), "UTF-8");

java后台编码和解码:

String keywords_e=URLEncoder.encode(keywords,"UTF-8");

String keywords_d=URLEncoder.decode(keywords,"UTF-8");