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").replace("%7E", "~"));