我是相当新的Java和碰到这个问题。 我试图寻找,但一直没有得到正确的答案。
我的字符串,例如
String name = anything 10%-20% 04-03-07
现在我需要建立一个URL字符串中包含此字符串名称。
http://something.com/test/anything 10%-20% 04-03-07
我试着用20%替代空间,现在我得到了新网址
http://something.com/test/anything%2010%-20%%2004-03-07
当我使用这个网址,并在Firefox启动它,它只是正常工作,但同时在Java中处理这显然是投掷
Exception in thread "main" java.lang.IllegalArgumentException
at java.net.URI.create(Unknown Source)
at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:69)
Caused by: java.net.URISyntaxException: Malformed escape pair at index 39 :
at java.net.URI$Parser.fail(Unknown Source)
at java.net.URI$Parser.scanEscape(Unknown Source)
at java.net.URI$Parser.scan(Unknown Source)
at java.net.URI$Parser.checkChars(Unknown Source)
at java.net.URI$Parser.parseHierarchical(Unknown Source)
at java.net.URI$Parser.parse(Unknown Source)
at java.net.URI.<init>(Unknown Source)
... 6 more
这是代码抛出错误
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);