2011-10-21 13 views
5

Me encuentro con un problema que necesito para llamar a un servicio web. Solo necesito generar una cadena url codificada en UTF-8. Debido a que el parámetro puede contener espacios, estoy usando a continuación pieza de código para codificar en UTF-8:conversión UTF-8 en 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; 
    } 

Pero todavía estoy consiguiendo el mismo valor. Debido a esto, recibo una excepción de argumento ilegal mientras llamo al servicio. ¿Algunas ideas?

+0

"¿UTF-8 codifica la URL porque puede contener espacios"? ¿Estás seguro de que eso es lo que quieres hacer? Los espacios UTF-8 son los mismos que los espacios ASCII. ¿No quieres * URL codificar *? – deceze

+0

@deceze: sí. eso es lo que quiero hacer, hombre. – Praveen

+0

@Praveen ¿cómo resolvió el problema? – frayab

Respuesta

11

Para la codificación UTF uso this ->URLEncoder.encode(string, "UTF-8");

También es necesario cambiar los espacios ->string.replace(" ", "%20");

6

Haga la prueba:

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

ahora no recibo una excepción de argumento illeagal. pero tengo la excepción de respuesta HTTP: solicitud incorrecta. ¿Tiene alguna idea? – Praveen

+0

@Paresh Mayani: sí. – Praveen

2

Se puede utilizar esta:

import java.net.URLEncoder; 

class{ 
    String TEXT; 

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

}