Android url编码问题

对url中的特殊字符如 空格 = ? & 等进行编码,单单使用 UrlEncode.encode(str, “UTF-8”); 这样是不行的,
会造成 诸如 http%3A%2F%2Fmaps.googleapis.com%2Fmaps%2Fapi%2Fdistancematr‌​ix%2Fxml%3Forigins%3‌​D150+Sutter+St+San+F‌​rancisco%2C+CA%2C+Un‌​ited+States%26destin‌​ations%3D410+Eddy+St‌​%0AIthaca%2C+NY+1485‌​0%26mode%3Ddriving%2‌​6sensor%3Dfalse%26la‌​nguage%3Den-EN%26uni‌​ts%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就是经过编码之后的了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值