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", "~"));
