java.net.URLEncoder.encode (String) è obsoleto, cosa devo usare invece?
-
03-07-2019 - |
Domanda
Ricevo il seguente avviso quando utilizzo java.net.URLEncoder.encode
:
warning: [deprecation] encode(java.lang.String) in java.net.URLEncoder has been deprecated
Cosa dovrei usare invece?
Soluzione
Utilizza l'altro metodo encode
in URLEncoder :
URLEncoder.encode(String, String)
Il primo parametro è il testo da codificare; il secondo è il nome della codifica dei caratteri da utilizzare (ad es. UTF-8
). Ad esempio:
System.out.println(
URLEncoder.encode(
"urlParameterString",
java.nio.charset.StandardCharsets.UTF_8.toString()
)
);
Altri suggerimenti
Dovresti usare:
URLEncoder.encode("NAME", "UTF-8");
Utilizza la classe URLEncoder :
URLEncoder.encode(String s, String enc)
Dove:
s : stringa da tradurre.
enc - Il nome di un codifica caratteri .
Set di caratteri standard:
US-ASCII ASCII a sette bit, a.k.a. ISO646-US, a.k.a. il blocco latino di base del set di caratteri Unicode ISO-8859-1 Alfabeto latino ISO n. 1, a.k.a. ISO-LATIN-1
UTF-8 Formato di trasformazione UCS a otto bit
UTF-16BE formato di trasformazione UCS a sedici bit, ordine byte big-endian
UTF-16LE Formato di trasformazione UCS a sedici bit, ordine byte little-endian
UTF-16 Formato di trasformazione UCS a sedici bit, ordine di byte identificato da un segno di ordine di byte opzionale
Esempio:
import java.net.URLEncoder;
String stringEncoded = URLEncoder.encode(
"This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");
Il primo parametro è la stringa da codificare; il secondo è il nome della codifica dei caratteri da utilizzare (ad esempio, UTF-8).
Come riferimento aggiuntivo per le altre risposte, invece di utilizzare " UTF-8 " puoi utilizzare:
HTTP.UTF_8
che è incluso da Java 4 come parte della libreria org.apache.http.protocol, che è incluso anche dall'API Android 1.