Pregunta

Recibo la siguiente advertencia cuando uso java.net.URLEncoder.encode :

warning: [deprecation] encode(java.lang.String)
         in java.net.URLEncoder has been deprecated

¿Qué debo usar en su lugar?

¿Fue útil?

Solución

Utilice el otro método de encode en URLEncoder :

URLEncoder.encode(String, String)

El primer parámetro es el texto a codificar; el segundo es el nombre de la codificación de caracteres a usar (por ejemplo, UTF-8 ). Por ejemplo:

System.out.println(
  URLEncoder.encode(
    "urlParameterString",
    java.nio.charset.StandardCharsets.UTF_8.toString()
  )
);

Otros consejos

Deberías usar:

URLEncoder.encode("NAME", "UTF-8");

Utilice la clase URLEncoder :

URLEncoder.encode(String s, String enc)

Donde:

  

s - Cadena a traducir.

     

enc : el nombre de codificación de caracteres .

Conjuntos de caracteres estándar:

  

US-ASCII ASCII de siete bits, a.k.a. ISO646-US, a.k.a. el bloque latino básico del conjunto de caracteres Unicode   ISO-8859-1 ISO Latin Alphabet No. 1, también conocido como ISO-LATIN-1

     

UTF-8 Formato de transformación UCS de ocho bits

     

UTF-16BE Formato de transformación UCS de dieciséis bits, orden de bytes big-endian

     

UTF-16LE Formato de transformación UCS de dieciséis bits, orden de bytes little-endian

     

UTF-16 Formato de transformación UCS de dieciséis bits, orden de bytes identificado por una marca de orden de bytes opcional

Ejemplo :

import java.net.URLEncoder;

String stringEncoded = URLEncoder.encode(
    "This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");

El primer parámetro es la cadena a codificar; el segundo es el nombre de la codificación de caracteres a usar (por ejemplo, UTF-8).

Como referencia adicional para las otras respuestas, en lugar de usar " UTF-8 " puede usar:

HTTP.UTF_8

que se incluye desde Java 4 como parte de la biblioteca org.apache.http.protocol, que también se incluye desde la API de Android 1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top