Je veux utiliser la classe URLEncoder/URLDecoder (java.net.URLEncoder/URLDecoder) dans une application et les méthodes: encoder (String s, String enc)/decode (String s, String enc), mais je ne sais pas quelle peut être la valeur de l'argument String enc? Je veux encoder/décoder dans le type de contenu MIME "x-www-form-urlencoded". Nous vous remercions de votre aide.URLEncoder encoder/URLDecoder décoder en Java (Android)
Répondre
Le paramètre de codage est le codage de caractères que vous utilisez. .
Le JavaDoc a tous les détails
Le JavaDoc ne mentionne pas tous les formats d'encodage possibles et je ne me vois lien vers un ENUM qui pourrait les lister. – anon58192932
D'abord, vous devez définir le type de contenu comme un «x-www-form-urlencoded. Ensuite, quel que soit le contenu que vous souhaitez encoder, encodez-le en utilisant "UTF-8".
Par exemple:
Pour définir le contenu de 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");
Ou si vous utilisez un JSP, vous pouvez écrire ce qui suit sur en haut.
<%@ 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">
Et à utiliser URLEncoder:
String encodedString = URLEncoder.encode("hello","UTF-8");
J'ai fait: - HttpPost post = new HttpPost ("url"); - post.setHeader ("Content-Type", "application/x-www-form-urlencoded"); - Chaîne encodedString = URLEncoder.encoder ("bonjour", "UTF-8"); - StringEntity temp; - temp.setContentEncoding (encodedString); - post.setEntity (temp); , puis exécutez DefaultHttpClient avec un post pour l'argument. –
Merci pour votre réponse! –
Espérons que cela fonctionne maintenant! – Sourabh
URLEncoder
et URLDecoder
les deux sont exception Throwable
et doit donc être au moins entouré par bloc try/catch. Cependant il existe un moyen de bits Litle simplier utilisant android.net.Uri
:
Uri.decode(string);
Uri.encode(string);
Ce sont des méthodes statiques, utilise utf-8, disponible depuis API-1 et ne jette aucune exception.
Mon préféré:
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;
}
retourne une chaîne vide si l'URL ne dispose pas d'une partie du nom de fichier, comme https://stackoverflow.com/
ou https://stackoverflow.com/questions/
. S'il y a une barre oblique inverse dans la partie du nom de fichier, elle est conservée.
Vous pouvez dépouiller les deux dernières lignes si vous avez besoin le nom court avec extension à la place.
- 1. PostMessage() alternative en Java (Android)
- 2. Encoder et décoder les URL rfc2396
- 3. Décoder les chaînes de requête en PHP
- 4. décoder un message imprimable cité en php
- 5. Récupérer un SQLite SUM en Java sur Android
- 6. Ressources de programmation réseau Android (Java)
- 7. Qu'est-ce qu'un thread (Java, Android)?
- 8. Comment décoder un fichier CSR?
- 9. Décoder un fichier PKCS # 12
- 10. Décoder les instructions printf en C (Printf Primer)
- 11. Comment décoder base64 (en petit boutiste) avec PHP?
- 12. Comment décoder une image PNG en octets bruts?
- 13. décoder un flux de fichiers en utilisant UTF-8
- 14. décoder un en-tête de courrier électronique UTF8
- 15. Comment faire une application Android en tant que fichier exécutable comme JAR en Java?
- 16. Comment puis-je décoder des données avec Base64 dans IPhone
- 17. Code Java ou lib pour décoder une décimale codée binaire (BCD) d'une chaîne
- 18. Bonne façon de décoder la réponse dans le client Dojo cometd java
- 19. Portage des applications Java sur la plateforme Android
- 20. Solution standard pour décoder les numéros d'additif
- 21. Décoder WMA avec FFMpeg à PCM
- 22. Comment puis-je décoder ce texte?
- 23. Validation de schéma android
- 24. Ressources de développement Android pour un débutant Java
- 25. Décoder codé html pour afficher dans SIlverlight
- 26. Décoder des entités HTML avec Python
- 27. php à silverlight base64 encoder/décoder
- 28. C# à PHP base64 encoder/décoder
- 29. Évaluation d'un script (par exemple Python) en Java pour la plate-forme Android
- 30. Carte char * en C DLL en Java avec JNA
Je dois écrire comme ça: encode ("bonjour", "x urlencoded-www-form-") ou pour son "x-www-form-urlencoded" encode ("bonjour", "UTF-8 ")? –
Vous devez écrire encoder ("bonjour", "UTF-8"). x-www-form-urlencoded est toujours le type du résultat. Le paramètre de codage se réfère à vos données d'entrée. – jgre
Merci pour votre réponse! –