Java正确URL解码方式:URLDecoder.decode

Exception in thread "main" java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u9"
	at java.net.URLDecoder.decode(URLDecoder.java:194)
	at com.hbzx.controller.PayResultController.main(PayResultController.java:253)


Java调用 URLDecoder.decode(str, "UTF-8"); 抛出以上的异常,其主要原因是% 在URL中是特殊字符,需要特殊转义一下,

解决办法:使用%25替换字符串中的%号

    

 url = url.replaceAll("%(?![0-9a-fA-F]{2})", "%25");
   String urlStr = URLDecoder.decode(url, "UTF-8");

你可能感兴趣的:(java)