¿Cómo codifica una URL en Android?
Pensé que era así:
final String encodedURL = URLEncoder.encode(urlAsString, "UTF-8");
URL url = new URL(encodedURL);
Si hago lo anterior, el http://
in urlAsString
se reemplaza por http%3A%2F%2F
in encodedURL
y luego obtengo un java.net.MalformedURLException
cuando uso la URL.
Uri.encode(query);
lugar.Voy a agregar una sugerencia aquí. Puede hacer esto para evitar tener que obtener bibliotecas externas.
Prueba esto:
Puede ver que en esta URL particular, necesito tener esos espacios codificados para poder usarlo para una solicitud.
Esto aprovecha algunas funciones disponibles en las clases de Android. Primero, la clase de URL puede dividir una URL en sus componentes adecuados, por lo que no es necesario que realice ningún trabajo de búsqueda / reemplazo de cadenas. En segundo lugar, este enfoque aprovecha la característica de clase URI de escapar componentes correctamente cuando construye un URI a través de componentes en lugar de desde una sola cadena.
La belleza de este enfoque es que puede tomar cualquier cadena de URL válida y hacer que funcione sin necesidad de ningún conocimiento especial de usted mismo.
fuente
Para Android, usaría String android.net.Uri.encode (String s)
Ex/
fuente
Uri.encode("a=1&b=1")
producea%3D1%26b%3D1
pero esperadoa=1&b=1
a=1&b=1
como una consulta, desea consultar exactamente eso.También puedes usar esto
es el método más simple
fuente
fuente
puedes usar los siguientes métodos
o
el segundo es mejor que el primero.
fuente
Encuentre caracteres en árabe y reemplácelos con su codificación UTF-8. algo como esto:
fuente