0

我需要一个正则表达式模式,它将查找 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。当我使用第一个 URL 时,我得到一个“转义的绝对路径无效”异常。

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

4

2 回答 2

2

以下行应该可以解决问题

String s = URLEncoder.encode("http://www.mysite.com/bla/blabla/abc[1].txt", "UTF-8");
于 2012-06-27T13:33:24.243 回答
-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());
于 2012-06-27T13:33:52.357 回答