post字符 特殊字符处理【转】

     今天和同事调试接口,由于产品设计的问题,传递的参数没有做任何的限制。同事就在传参数的时候加了些特殊字符到后台,但是后台打印的日志是 null... 然后上网搜了下解决办法:转 https://www.cnblogs.com/panie2015/p/5885922.html

   

1)下面列出了一些URL特殊符号及编码十六进制值

  • +    URL 中+号表示空格             %2B 
  • 空格 URL中的空格可以用+号或者编码 %20 
  •  /    分隔目录和子目录  %2F   
  • ?     分隔实际的 URL 和参数 %3F 
  • %   指定特殊字符 %25 
  • #    表示书签 %23 
  • &    URL 中指定的参数间的分隔符 %26 
  • =    URL 中指定参数的值 %3D

   2)java 实现

    如果代码采用java 来访问请求的话,可以采用 URLEncoder.encode(param,"utf-8") 将参数值编码,对应的解码方法为URLEncoder.decode()

    java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s); 

    比如     

1
String str = "http://localhost:8980/select?param=" + URLEncoder.encode("bcpuser$userid$1#3#4","utf-8") ; <br>//得到结果  http://localhost:8980/BCPClientServer/select?param=bcpuser%24userid%241%233%234

    得到url 可以直接在浏览器上访问,如果后台采用的java+ springMVC,可以直接得到预期的参数(无需再次解码的)

原文地址:https://www.cnblogs.com/thinkingandworkinghard/p/9007166.html