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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top