私はJavaにかなり慣れていないので、この問題に遭遇しました。検索してみましたが、正解はありませんでした。
たとえば、文字列があります
String name = anything 10%-20% 04-03-07
次に、以下のように、この文字列名で URL 文字列を作成する必要があります。
http://something.com/test/anything 10%-20% 04-03-07
スペースを %20 に置き換えてみましたが、新しい URL を次のように取得しています
http://something.com/test/anything%2010%-20%%2004-03-07
このURLを使用して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);