如何用括号编码替换url中的括号?

时间:2012-06-27 13:30:54

标签: java regex

我需要一个正则表达式模式,它会在url中找到并替换urls到其urls编码。

例如基本网址:

http://www.mysite.com/bla/blabla/abc[1].txt

将转向:

http://www.mysite.com/bla/blabla/abc%5B1%5D.txt

任何人都可以帮忙吗?

EDIT1: 我原来使用commons-httpclient来访问这种网址。 当我使用第一个URL时,我得到一个“转义绝对路径无效”异常。

我无法使用URLENCODER,因为当我使用它时,我得到一个“主机参数为空”的异常。

2 个答案:

答案 0 :(得分:2)

以下行应该可以解决问题

String s = URLEncoder.encode("http://www.mysite.com/bla/blabla/abc[1].txt", "UTF-8");

答案 1 :(得分:-1)

您是否尝试过URLEncoder.encode? 在java.net.URLEncoder包中。

编辑:

好的,我看到......你无法将整个URL传递给URLEncoder。 URLEncoder主要用于编码查询参数。

试试这个:

URI uri = new URI("http", "www.mysite.com", "/bla/blabla/abc[1].txt",null);
    System.out.println(uri.toASCIIString());