Bei der Verwendung wird folgende Warnung angezeigt java.net.URLEncoder.encode
:
Warnung: [veraltet] codieren (java.lang.String) in java.net.URLEncoder ist veraltet
Was soll ich stattdessen verwenden?
java
url
network-programming
deprecated
Frank Krueger
quelle
quelle
Antworten:
Verwenden Sie die andere
encode
Methode in URLEncoder :Der erste Parameter ist der zu codierende Text. Der zweite ist der Name der zu verwendenden Zeichenkodierung (z
UTF-8
. B. ). Beispielsweise:quelle
StandardCharsets.US_ASCII
,StandardCharsets.UTF_8
usw. LeiderURLEncoder.encode
akzeptiert keine aCharset
... (aber viele andere moethods tun).URLEncoder.encode(<urlStringToBeEncoded>, StandardCharsets.UTF_8.name())
. Unter Verwendung der statischen KonstanteUTF_8
‚stoString()
Verfahren wie das Zeichencodierungsschema führtjava.nio.charset.IllegalCharsetNameException: java.nio.charset.CharsetICU[UTF-8]
als dietoString()
returns‚java.nio.charset.CharsetICU [UTF-8]‘. Um das gewünschte "UTF-8" zu erhalten, verwenden Siename()
stattdessen dessen Methode.Du solltest benutzen:
quelle
Verwenden Sie die Klasse URLEncoder :
Wo :
Standard-Zeichensätze:
Beispiel:
quelle
Der erste Parameter ist der zu codierende String. Der zweite ist der Name der zu verwendenden Zeichenkodierung (z. B. UTF-8).
quelle
Als zusätzliche Referenz für die anderen Antworten können Sie anstelle von "UTF-8" Folgendes verwenden:
HTTP.UTF_8
Dies ist seit Java 4 als Teil der Bibliothek org.apache.http.protocol enthalten, die auch seit Android API 1 enthalten ist.
quelle
org.apache.http.protocol.HTTP
.Die Verwendung von
org.apache.commons.httpclient.URI
ist nicht ausschließlich ein Problem; was ein Problem ist , dass Sie den falschen Konstruktor Ziel, das wird abgeschrieben.Mit just
Wird es in der Tat als abgeschrieben kennzeichnen. Was benötigt wird, ist, mindestens ein zusätzliches Argument (das erste unten) und im Idealfall zwei anzugeben:
escaped
: true, wenn die URI-Zeichenfolge in Escape-Form vorliegt. sonst falsch.charset
: Die Zeichensatzzeichenfolge, die bei Bedarf die Escape-Codierung ausführtDies zielt auf einen nicht abgeschriebenen Konstruktor innerhalb dieser Klasse ab. Eine ideale Verwendung wäre also eine solche:
Ein bisschen verrückt spät im Spiel (ein Haar über 11 Jahre später - egad! ), Aber ich hoffe, das hilft jemand anderem, besonders wenn die Methode am anderen Ende immer noch einen URI erwartet, wie z
org.apache.commons.httpclient.setURI()
.quelle