java.net.URLEncoder.encode (String) ist veraltet, was soll ich stattdessen verwenden?
-
03-07-2019 - |
Frage
Ich erhalte die folgende Warnung, wenn java.net.URLEncoder.encode
mit:
warning: [deprecation] encode(java.lang.String) in java.net.URLEncoder has been deprecated
Was soll ich stattdessen verwenden?
Lösung
Mit der anderen encode
Methode in URLEncoder :
URLEncoder.encode(String, String)
Der erste Parameter ist der Text zu codieren; der zweite ist der Name der Zeichencodierung zu verwenden (z.B. UTF-8
). Zum Beispiel:
System.out.println(
URLEncoder.encode(
"urlParameterString",
java.nio.charset.StandardCharsets.UTF_8.toString()
)
);
Andere Tipps
Sie sollten verwenden:
URLEncoder.encode("NAME", "UTF-8");
Mit der Klasse URLEncoder :
URLEncoder.encode(String s, String enc)
Dabei gilt:
s -. String übersetzt werden
enc - Der Name eines unterstützten Zeichencodierung .
Standard charsets:
US-ASCII Sieben-Bit-ASCII, auch bekannt als ISO646-US, auch bekannt als der Basic-Latin-Block des Unicode-Zeichensatzes ISO-8859-1 ISO Latin Alphabet No. 1, auch bekannt als ISO-LATIN-1
UTF-8 Acht-Bit-UCS Transformation Format
UTF-16 BE Sechzehn-Bit-UCS Transformation Format, Big-Endian-Byte-Reihenfolge
UTF-16LE Sechzehn-Bit-UCS Transformation Format, Little-Endian Byte-Reihenfolge
UTF-16 Sechzehn-Bit-UCS Transformation Format, Byte-Reihenfolge durch eine optionalen Byte-Reihenfolge-Marke identifiziert
Beispiel:
import java.net.URLEncoder;
String stringEncoded = URLEncoder.encode(
"This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");
Der erste Parameter ist der String zu kodieren; der zweite ist der Name der Zeichencodierung zu verwenden (beispielsweise UTF-8).
Als weitere Referenz für die anderen Antworten, anstelle der Verwendung von "UTF-8" können Sie:
HTTP.UTF_8
, das ist da Java enthält 4 als Teil der org.apache.http.protocol Bibliothek, die auch seit Android enthält API 1.