url传递参数中有特殊字符时前后台处理
在项目中用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");