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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top