项目中要用 Java 去 get 到下载的 URL ,然后交给 linux 去 wget 。那么带着()
之类的符号是不可以的。
在 Python 中可以这么做
from urllib import quote
from urllib import quote
#URL 是瞎给的
cli_url ="http://down1.chinaunix.net/distfiles/lrzsz-(0)12.20.tar.gz"
url_0 = cli_url.split('://')[0]
url_1 = cli_url.split('://')[1]
new_url = url_0+'://'+quote(url_1)
cli_url = new_url #http://down1.chinaunix.net/distfiles/lrzsz-%280%2912.20.tar.gz
print cli_url
但是在 Java 中似乎并不是这么好做的,
public static void main(String[] args)
throws URISyntaxException, MalformedURLException, UnsupportedEncodingException {
String _url = "http://down1.chinaunix.net/distfiles/lrzsz-(0)12.20.tar.gz";
String url=URLEncoder.encode(_url, "UTF-8");
System.out.println(url); //http%3A%2F%2Fdown1.chinaunix.net%2Fdistfiles%2Flrzsz-%280%2912.20.tar.gz
//先不管 http://还没有分割。蛋疼的是这里的 url 连 /都被编码了
}
想在 Java 中得到从http://down1.chinaunix.net/distfiles/lrzsz-(0)12.20.tar.gz
变成http://down1.chinaunix.net/distfiles/lrzsz-%280%2912.20.tar.gz
的效果。 url 是不规则的,用正则应该不行..求各位大神指教。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.