Java: caractère illégal dans l’URI

J’ai essayé de demander googles geo api avec ce code source

client = new DefaultHttpClient(); HttpGet get=new HttpGet(uri); try { HttpResponse response = client.execute(get); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 200 ){ HttpEntity entity = response.getEntity(); InputStream is = entity.getContent(); try { XMLReader parser = XMLReaderFactory.createXMLReader(); parser.setContentHandler(gh); parser.parse(new InputSource(is)); } catch (IllegalStateException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } } } catch (IOException e) { e.printStackTrace(); } 

Est-ce que l’URI est comme ça http://maps.googleapis.com:80/maps/api/geocode/xml?address = Königstraße, Berlin & sensor = false

Une exception est levée: Caractère illégal!

Comment puis-je échapper à ä, ü, ö, ß et aux blancs? J’ai essayé le java.net.URLEncoder avec ISO-8859-1 comme encodage sans succès 🙁

en ce qui concerne igor

Vous devez encoder en URL la valeur du paramètre de requête invididual avec UTF-8, et non pas l’intégralité de l’URL, ni avec ISO-8859-1.

 Ssortingng url = "http://maps.googleapis.com:80/maps/api/geocode/xml" + "?address=" + URLEncoder.encode("Königstraße, Berlin", "UTF-8") + "&sensor=false"; 

K% C3% B6nigstra% C3% 9Fe Le codage en pourcentage UTF-8 fonctionnera également.