web-dev-qa-db-fra.com

java.net.URLEncoder.encode (String) est obsolète, que dois-je utiliser à la place?

Je reçois l'avertissement suivant lors de l'utilisation de Java.net.URLEncoder.encode:

avertissement: [deprecation] encoder (Java.lang.String) 
 dans Java.net.URLEncoder est déconseillé

Que devrais-je utiliser à la place?

180
Frank Krueger

Utilisez l'autre méthode encode dans RLEncoder :

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()
  )
);
268
Will Wagner

Tu devrais utiliser:

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

Utilisez la classe URLEncoder :

URLEncoder.encode(String s, String enc)

Où :

s - Chaîne à traduire.

enc - Nom d'un encodage de caractères ) pris en charge .

Jeux de caractères standard:

US-ASCII ASCII à 7 bits, également appelé ISO646-US, également appelé bloc Latin de base du jeu de caractères Unicode ISO-8859-1 Alphabet latin ISO n ° 1, également appelé ISO- LATIN-1

UTF-8 Format de transformation UCS huit bits

UTF-16BE Format de transformation UCS à 16 bits, ordre des octets big-endian

UTF-16LE Format de transformation UCS à 16 bits, ordre d'octet en petit boutien

UTF-16 Format de transformation UCS à 16 bits, ordre d'octet identifié par une marque d'ordre d'octet facultative.

Exemple:

import Java.net.URLEncoder;

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

Le premier paramètre est la chaîne à encoder; le second est le nom du codage de caractères à utiliser (par exemple, UTF-8).

1
user3591718

En tant que référence supplémentaire pour les autres réponses, au lieu d'utiliser "UTF-8", vous pouvez utiliser:

HTTP.UTF_8

qui est inclus depuis Java 4 dans la bibliothèque org.Apache.http.protocol, également inclus depuis Android API 1.

1
htafoya