对url中的特殊字符如 空格 = ? & 等进行编码,单单使用 UrlEncode.encode(str, “UTF-8”); 这样是不行的,
会造成 诸如 http%3A%2F%2Fmaps.googleapis.com%2Fmaps%2Fapi%2Fdistancematrix%2Fxml%3Forigins%3D150+Sutter+St+San+Francisco%2C+CA%2C+United+States%26destinations%3D410+Eddy+St%0AIthaca%2C+NY+14850%26mode%3Ddriving%26sensor%3Dfalse%26language%3Den-EN%26units%3Dimperial
的情况,那如何解决呢:
public static String formatEncode(String originUrl) {
if (TextUtils.isEmpty(originUrl)) {
return “”;
}
try {
URL url = new URL(originUrl);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
return uri.toURL().toString();
} catch (MalformedURLException e) {
} catch (URISyntaxException e) {
}
return originUrl;
}
返回的url就是经过编码之后的了.