it-swarm.com.de

java.net.URLEncoder.encode (String) ist veraltet. Was soll ich stattdessen verwenden?

Ich erhalte die folgende Warnung bei der Verwendung von Java.net.URLEncoder.encode:

warnung: [veraltete] Codierung (Java.lang.String) 
 in Java.net.URLEncoder wurde verworfen

Was soll ich stattdessen verwenden?

180
Frank Krueger

Verwenden Sie die andere encode -Methode in RLEncoder :

URLEncoder.encode(String, String)

Der erste Parameter ist der zu codierende Text. der zweite ist der Name der zu verwendenden Zeichenkodierung (z. B. UTF-8). Beispielsweise:

System.out.println(
  URLEncoder.encode(
    "urlParameterString",
    Java.nio.charset.StandardCharsets.UTF_8.toString()
  )
);
268
Will Wagner

Du solltest benutzen:

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

Verwenden Sie die Klasse URLEncoder :

URLEncoder.encode(String s, String enc)

Woher :

s - Zu übersetzender String.

enc - Der Name einer unterstützten Zeichenkodierung .

Standard-Zeichensätze:

US-ASCII Sieben-Bit-ASCII, auch bekannt als ISO646-US, der lateinische Basisblock des Unicode-Zeichensatzes ISO-8859-1 ISO-lateinisches Alphabet Nr 1, auch bekannt als ISO-LATIN-1

UTF-8 Acht-Bit-UCS-Transformationsformat

UTF-16BE 16-Bit-UCS-Transformationsformat, Big-Endian-Bytereihenfolge

UTF-16LE 16-Bit-UCS-Transformationsformat, Little-Endian-Bytereihenfolge

UTF-16 16-Bit-UCS-Transformationsformat, Bytereihenfolge, gekennzeichnet durch eine optionale Bytereihenfolge

Beispiel:

import Java.net.URLEncoder;

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

Der erste Parameter ist der zu codierende String. Der zweite ist der Name der zu verwendenden Zeichencodierung (z. B. UTF-8).

1
user3591718

Als zusätzliche Referenz für die anderen Antworten können Sie anstelle von "UTF-8" Folgendes verwenden:

HTTP.UTF_8

welches seit Java 4 als Teil der org.Apache.http.protocol Bibliothek enthalten ist, welches auch seit Android API 1 enthalten ist.

1
htafoya