在Android中编码Url问题

如何在Android中编码一个url? 我用如下方法实现:

final String encodedURL = URLEncoder.encode(urlAsString, "UTF-8");
URL url = new URL(encodedURL);

但是用上面的代码后,urlAsString中的http://encodedURL中的http%3A%2F%2F代替,然后当我使用url时获得一个java.net.MalformedURLException错误提醒。请求大家帮忙解答,万分感谢。

你没有编码整个URL,只编码了不可靠来源的部分URL。

String query = URLEncoder.encode("apples oranges", "utf-8");
String url = "http://stackoverflow.com/search?q=" + query;

可以试试:

String urlStr = "http://abc.dev.domain.com/0007AC/ads/800x480 15sec h.264.mp4";
URL url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
url = uri.toURL();