Java中实现PHP中的urlencode与rawurlencode

php手册中对urlencode这样说明

技术分享

在java中 URLEncoder做了这样注释

技术分享

 

也就是说java中对星号"*"是不进行编码的 也就是说URLEncoder之后还是"*",PHP中urlencode是返回%2A

Java跟PHP对空格都是处理成"+"

要实现Java与PHP中urlencode的一致,Java中可以这样做:

  //Java : output "+%2A"

  System.out.println(URLEncoder.encode(" *", "UTF-8").replace("*", "%2A"));

  //php : output "+%2A"

    echo urlencode("+*");

 php中的rawurlencode中对空格‘ ‘处理成了%20 星号‘*‘也处理成%2A

  //php output %20%2A

  echo rawurlencode(" *");

 

Java中要实现php中的rawurlencode就需要这样做了

  //Java output%20%2A

  System.out.println(URLEncoder.encode("*", "UTF-8").replace("*", "%2A").replace("+", "%20"))

 

文章来自:http://www.cnblogs.com/sanshuiqing/p/5115721.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3