java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) p

报错:
java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern

原因:
碰到url中含有普通的%字符的情况,如果直接用URLDecode.decode()则会出现如题的错误,解决方法就是先将’%’编码为’%25’,再对url解码。

解决办法:
String s = request.getParameter("perparm");
s= s.replaceAll("%", "%25");

更好解决办法:
后面正则表达式 后面不为数字或字母,就替换为%25

不匹配%后面两位为数字或字母(包括大小写)的字符;这样就把正确的排除掉了,剩下的就是需要匹配替换的。

s = s.replaceAll("%(?![0-9a-fA-F]{2})", "%25");

猜你喜欢

转载自cuityang.iteye.com/blog/2422212