Ich möchte die URLEncoder/URLDecoder Klasse (java.net.URLEncoder/URLDecoder) in einer Anwendung verwenden und die Methoden: encode (String s, String enc)/decode (String s, String enc), aber ich weiß nicht, was der Wert des String-Arguments enc sein kann? Ich möchte im MIME-Inhaltstyp "x-www-form-urlencoded" codieren/dekodieren. Vielen Dank für Ihre Hilfe.URLEncoder encode/URLDecoder Dekodieren in Java (Android)
Antwort
Der Codierungsparameter ist die von Ihnen verwendete Zeichencodierung. For example "UTF-8"
.
The JavaDoc hat alle Details
Die JavaDoc erwähnt nicht alle möglichen Kodierungsformate noch sehe ich ein Link zu einem ENUM, das sie auflisten könnte. – anon58192932
Zuerst Sie den Content-Type als 'x-www-form-urlencoded' einstellen müssen. Dann kodieren Sie den Inhalt, den Sie kodieren möchten, mit "UTF-8".
Zum Beispiel:
Zum Inhalt auf 'x-www-form-urlencoded':
URL url = new URL("http://www.xyz.com/SomeContext/SomeAction"); <br>
URLConnection urlConnection = url.openConnection();<br>
....<br>
....<br>
urlConnection.setRequestProperty("Content-type","application/x-www-form-urlencoded");
Oder wenn Sie eine JSP verwenden, dann können Sie schreiben folgendes auf Spitze davon.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><br>
< META http-equiv="Content-Type" content="text/html; charset=UTF-8">
< FORM action="someaction.jsp" enctype="application/x-www-form-urlencoded" name="InputForm" method="POST">
Und URLEncoder zu verwenden:
String encodedString = URLEncoder.encode("hello","UTF-8");
Ich habe getan: - HttpPost post = new HttpPost ("url"); - post.setHeader ("Inhaltstyp", "application/x-www-form-urlencoded"); - Zeichenfolge encodedString = URLEncoder.kodieren ("Hallo", "UTF-8"); - StringEntity temp; - temp.setContentEncoding (encodedString); - post.setEntity (temp); und dann einen DefaultHttpClient mit post für argument ausführen. –
Vielen Dank für Ihre Antwort! –
Ich hoffe, es funktioniert jetzt! – Sourabh
URLEncoder
und URLDecoder
beide Ausnahme Throwable
und müssen daher zumindest durch try/catch-Block eingeschlossen werden. Allerdings gibt es eine Art und Weise litle Bit simplier Verwendung android.net.Uri
:
Uri.decode(string);
Uri.encode(string);
Diejenigen statischen Methoden sind, verwendet UTF-8, erhältlich, da API-1 und wirft keine Ausnahme.
Mein persönlicher Favorit:
static String baseNameFromURL(URL url) {
String shortName;
String path = url.getPath();
String escaped = path.substring(path.lastIndexOf('/') + 1);
try {
shortName = URLDecoder.decode(escaped, "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new Error(e.getMessage(), e);
}
int period = shortName.lastIndexOf('.');
return period > -1 ? shortName.substring(0, period) : shortName;
}
Gibt einen leeren String, wenn die URL nicht einen Dateinamen Teil hat, wie https://stackoverflow.com/
oder https://stackoverflow.com/questions/
. Wenn im Dateinamen ein Backslash vorhanden ist, wird dieser beibehalten.
Sie können die letzten zwei Zeilen entfernen, wenn Sie stattdessen den Kurznamen mit der Erweiterung benötigen.
- 1. Fehler in MyTask mit URLEncoder - Android & Java
- 2. Java URL-Codierung: URLEncoder vs. URI
- 3. URLEncoder für Integer-Wert
- 4. Java kodieren und .NET dekodieren
- 5. Mocking UrlEncoder in einer statischen Methode
- 6. Soll ich URLEncoder für jede URL parametr
- 7. Ist es möglich, eine Namenskollision mit URLEncoder
- 8. Android Base64 Audiodatei Kodieren und Dekodieren
- 9. JSON dekodieren in PHP
- 10. Variablen in PHP dekodieren
- 11. Wie lesen und dekodieren Base64-Daten aus XML in Java
- 12. RLE effizient dekodieren in CUDA
- 13. dekodieren hex js in Drupal
- 14. Java Codieren und dekodieren Zeichenfolge ohne Vorwärts- oder Rückwärtsstrich
- 15. android Schreiben Bilder zwischenzuspeichern nicht null Rückkehr auf dekodieren Datei
- 16. Android - Wie zu dekodieren und zu dekompilieren APK-Datei?
- 17. Android Decoder-> zurück dekodieren false für Bitmap herunterladen
- 18. So dekodieren Sie Spracheingabe
- 19. Einen Hash dekodieren
- 20. Unicode-Text rückwärts dekodieren
- 21. PHP: json dekodieren Grenzen
- 22. Python 3.4 dekodieren Bytes
- 23. AS3 XML-Datei dekodieren
- 24. PHP dekodieren JSON POST
- 25. base64 Dekodieren/Inkonsistenz codieren
- 26. PHP dekodieren JSON verschachtelt
- 27. JSON-Wert in String in Golang dekodieren
- 28. "URLEncoder kann nicht aufgelöst werden" - URLEncoder.encode (p.getValue(), "UTF-8");
- 29. Java Multithreading in android
- 30. JSON.stringify in Java - Android
Also muss ich es so schreiben: encode ("Hallo", "x-www-form-urlencoded") oder für "x-www-form-urlencoded" ist es kodieren ("Hallo", "UTF-8 ")? –
Sie müssen schreiben kodieren ("Hallo", "UTF-8"). x-www-form-urlencoded ist immer die Art des Ergebnisses. Der Encoding-Parameter bezieht sich auf Ihre Eingabedaten. – jgre
Vielen Dank für Ihre Antwort! –