java.net.URLEncoder.encode (String) est obsolète, que dois-je utiliser à la place?
-
03-07-2019 - |
Question
Je reçois l'avertissement suivant lors de l'utilisation de java.net.URLEncoder.encode
:
warning: [deprecation] encode(java.lang.String) in java.net.URLEncoder has been deprecated
Que devrais-je utiliser à la place?
La solution
Utilisez l'autre méthode encode
dans URLEncoder :
URLEncoder.encode(String, String)
Le premier paramètre est le texte à encoder; le second est le nom du codage de caractères à utiliser (par exemple, UTF-8
). Par exemple:
System.out.println(
URLEncoder.encode(
"urlParameterString",
java.nio.charset.StandardCharsets.UTF_8.toString()
)
);
Autres conseils
Vous devriez utiliser:
URLEncoder.encode("NAME", "UTF-8");
Utilisez la classe URLEncoder :
URLEncoder.encode(String s, String enc)
Où:
s - Chaîne à traduire.
enc - Nom d'un codage de caractères .
Jeux de caractères standard:
US-ASCII ASCII sept bits, code ISO646-US, le bloc Basic Latin du jeu de caractères Unicode ISO-8859-1 Alphabet latin ISO n ° 1, par exemple, ISO-LATIN-1
UTF-8 Format de transformation UCS huit bits
UTF-16BE Format de transformation UCS à 16 bits, ordre d'octet en gros caractères
UTF-16LE Format de transformation UCS 16 bits, ordre d'octet little-endian
UTF-16 Format de transformation UCS 16 bits, ordre d'octet identifié par un repère d'ordre d'octet facultatif
Exemple:
import java.net.URLEncoder;
String stringEncoded = URLEncoder.encode(
"This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");
Le premier paramètre est la chaîne à encoder; le second est le nom du codage de caractères à utiliser (par exemple, UTF-8).
Comme référence supplémentaire pour les autres réponses, au lieu d'utiliser "UTF-8" , vous pouvez utiliser:
HTTP.UTF_8
inclus depuis Java 4 dans la bibliothèque org.apache.http.protocol, également inclus depuis Android API 1.