2012-05-07 12 views
1

で不正な文字のJava:私はグーグルを要求しようとしたURI

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(); 
     } 

、このソースコードとAPIをジオこの http://maps.googleapis.com:80/maps/api/geocode/xml?address =ケーニヒ、ベルリン&センサー= falseを

は例外がスローされるようなURIです:違法なキャラクター!

ä、ü、ö、ßおよびブランクからどのように脱出できますか? 私は成功せず、エンコーディングとしてISO-8859-1でjava.net.URLEncoderを試してみました:(

に関しては、あなたがUTF-8でURLエンコードしinvididualリクエストパラメータの値ではなく、全体に必要

答えて

5

をイゴールISO-8859-1とURLともありません。

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

あなたが正しいです。それはこのように動作します。ありがとうございますあなたはとてもそうです:) – Igor

0

K%C3%B6nigstra%C3%9Fe UTF-8パーセントエンコーディングも同様に動作します。

+0

URLEncoder.encode( "Königstraße、Berlin"、 "UTF-8")はK%C3%Bを生成します6nigstra%C3%9Fe。どうも – Igor

関連する問題