我们不应该使用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