2 znl 12 znl_12 于 2012.10.30 16:27 提问

在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错误提醒。请求大家帮忙解答,万分感谢。

2个回答

csh_34
csh_34   2012.10.31 10:52
已采纳

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

String query = URLEncoder.encode("apples oranges", "utf-8");
String url = "http://stackoverflow.com/search?q=" + query;
qq396431869
qq396431869 如果遇上加密短文地址,后面出现其它符号就不行了
11 个月之前 回复
xiaoyan_12
xiaoyan_12   2012.11.01 17:50

可以试试:

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();
Csdn user default icon
上传中...
上传图片
插入图片