2011-10-21 10 views
5

Sto riscontrando un problema che ho bisogno di chiamare un servizio web. Ho solo bisogno di generare una stringa di url con codifica UTF-8. Poiché il parametro può contenere spazi, sto usando qui sotto pezzo di codice per codificare in UTF-8:Conversione UTF-8 in Android?

public String encodeUTF(String str) { 

     try { 
      byte[] utf8Bytes = str.getBytes("UTF-8"); 

      String encodedStr = new String(utf8Bytes, "UTF-8"); 

      return encodedStr; 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 
     return str; 
    } 

Ma ancora io sono sempre lo stesso valore. Per questo motivo ricevo un'eccezione di argomento illegale durante la chiamata al servizio. Qualche idea?

+0

"Codifica UTF-8 per l'URL perché potrebbe contenere spazi"? Sei sicuro che sia quello che vuoi fare? Gli spazi UTF-8 sono gli stessi degli spazi ASCII. Non vuoi * URL codificare * esso? – deceze

+0

@deceze: sì. questo è quello che voglio fare, uomo. – Praveen

+0

@Praveen come hai risolto il problema? – frayab

risposta

11

Per l'uso di codifica UTF questo ->URLEncoder.encode(string, "UTF-8");

Inoltre è necessario modificare gli spazi ->string.replace(" ", "%20");

6

Provare per credere:

URLEncoder.encode(str, "UTF-8"); 
+0

ora non sto ottenendo un'eccezione di argomento illeagal. ma ho ricevuto l'eccezione di risposta http: cattiva richiesta. hai qualche idea? – Praveen

+0

@Paresh Mayani: si. – Praveen

2

È possibile utilizzare questo:

import java.net.URLEncoder; 

class{ 
    String TEXT; 

    TEXT= URLEncoder.encode(TEXT, "UTF-8"); 

}