我們不應該使用URLEncoder.encode作爲URL的地址部分,因爲它會將您的http://domain.com/ {username}錯誤地更改爲http%3A%2F%2Fdomain.com%2 {username},您應該知道它會替換所有空格用'+'表示對我來說用「%20」替換它更好。
這裏這個函數只對你的URL的最後部分進行編碼,該部分是{用戶名}或文件名或任何可能具有非法字符的內容。
String safeUrl(String inUrl)
{
int fileInd = inUrl.lastIndexOf('/') + 1;
String addr = inUrl.substring(0, fileInd);
String fileName = inUrl.substring(fileInd);
String outUrl=null;
try {
outUrl = addr + URLEncoder.encode(fileName, "UTF-8");
outUrl = outUrl.replace("+", "%20");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return outUrl;
}
您是否嘗試過使用%7B和%7D,如下所示:domain.com/service/%7Busername%7D。或者就是你編碼的意思。 – sblundy 2010-05-27 17:47:23