java.net.URLEncoder.encode (String) está en desuso, ¿qué debo usar en su lugar?
-
03-07-2019 - |
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?
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.