Ik krijg de volgende waarschuwing wanneer ik java.net.URLEncoder.encode
gebruik:
waarschuwing: [beëindiging] encode(java.lang.String) in java.net.URLEncoder is verouderd
Wat moet ik in plaats daarvan gebruiken?
Antwoord 1, autoriteit 100%
Gebruik de andere encode
-methode in URLEncoder:
URLEncoder.encode(String, String)
De eerste parameter is de tekst die moet worden gecodeerd; de tweede is de naam van de te gebruiken tekencodering (bijv. UTF-8
). Bijvoorbeeld:
System.out.println(
URLEncoder.encode(
"urlParameterString",
java.nio.charset.StandardCharsets.UTF_8.toString()
)
);
Antwoord 2, autoriteit 12%
U moet gebruiken:
URLEncoder.encode("NAME", "UTF-8");
Antwoord 3, autoriteit 10%
Gebruik de klasse URLEncoder:
URLEncoder.encode(String s, String enc)
Waar:
s– Tekenreeks die moet worden vertaald.
enc– De naam van een ondersteunde tekencodering.
Standaard tekensets:
US-ASCIISeven-bit ASCII, ook bekend als ISO646-US, ook bekend als het Latijnse basisblok van de Unicode-tekenset
ISO-8859-1 ISO Latijns alfabet nr. 1, ook bekend als ISO-LATIN-1UTF-8Acht-bit UCS-transformatie-indeling
UTF-16BEZestien-bits UCS-transformatieformaat, big-endian bytevolgorde
UTF-16LEZestien-bits UCS-transformatieformaat, little-endian bytevolgorde
UTF-16Zestien-bits UCS-transformatieformaat, bytevolgorde geïdentificeerd door een optionele byte-volgordemarkering
Voorbeeld:
import java.net.URLEncoder;
String stringEncoded = URLEncoder.encode(
"This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");
Antwoord 4
De eerste parameter is de tekenreeks die moet worden gecodeerd; de tweede is de naam van de te gebruiken tekencodering (bijv. UTF-8).
Antwoord 5
Het gebruik van org.apache.commons.httpclient.URI
is niet strikt een probleem; het probleem is dat u zich op de verkeerde constructor richt, die wordtafgeschreven.
Alleen
. gebruiken
new URI( [string] );
Zal het inderdaad als afgeschreven markeren. Wat nodig is, is om minimaal één extra argument te geven (de eerste, hieronder), en idealiter twee:
escaped
: waar als de URI-tekenreeks in escape-vorm is. anders vals.charset
: de tekenreeks voor escape-codering, als
vereist
Dit is gericht op een niet-afgeschreven constructor binnen die klasse. Dus een ideaal gebruik zou als volgt zijn:
new URI( [string], true, StandardCharsets.UTF_8.toString() );
Een beetje idioot laat in het spel (meer dan 11 jaar later – egad!), maar ik hoop dat dit iemand anders helpt, vooral als de methode aan het einde is nog steedseen URI verwacht, zoals org.apache.commons.httpclient.setURI()
.
Antwoord 6
Als aanvullende referentie voor de andere reacties kunt u in plaats van “UTF-8”gebruiken:
HTTP.UTF_8
die sinds Java 4 is opgenomen als onderdeel van de bibliotheek org.apache.http.protocol, die ook is opgenomen sinds Android API 1.