Java.net.URLEncoder.encode encode l'espace en tant que + mais j'ai besoin de% 20

Comme le dit le titre: quel codeur me donnerait l'espace en %20 par opposition à + ? Je l'ai besoin pour Android. Java.net.URLEncoder.encode donne +

  • MediaMetadataCompat Extras
  • Aucune ressource trouvée qui correspond au nom donné 'android: Theme.Holo.Light'
  • Remplacez Retrolambda avec Android Studio 3.0 Java 8 fonctionnalités intégrées
  • AndroidHttpClient versus HttpUrlConnection pour API niveau 9 et supérieur
  • Barre d'outils de cache Android dans un fragment spécifique
  • La sélection de WebView provoque le cache du clavier mobile temporairement puis revenir
  • BaseGameActivity.runOnUpdateThread () contre Entity.registerUpdateHandler ()
  • WebRTC vient-il à Android WebView? Quand?
  • AppBarLayout, NestedScrollView, FrameLayout, quel est l'affaire?
  • TextView personnalisé dans Android avec différents mots de couleur
  • Le bouton Html de Webview clique sur la détection dans Activité (code java)
  • Caractéristiques de l'image de marque CustomBar personnalisée
  • 2 Solutions collect form web for “Java.net.URLEncoder.encode encode l'espace en tant que + mais j'ai besoin de% 20”

    Android a sa propre classe Uri que vous pouvez utiliser.

    Par exemple

     String url = Uri.parse("http://www.google.com").buildUpon() .appendQueryParameter("q", "foo bar") .appendQueryParameter("xml", "<Hellö>") .build().toString(); 

    résulte en

    http://www.google.com?q=foo%20bar&xml=%3CHell%C3%B6%3E

    Uri Encode les caractères dans la chaîne donnée comme «%» – octets échappés à l'aide du schéma UTF-8. Laisse les lettres ("AZ", "az"), les chiffres ("0-9") et les caractères sans réserve ("_- !. ~ '() *") intacts.

    Remarque: seulement _-.* Sont considérés comme des caractères non réservés par URLEncoder . !~'() Serait converti en %21%7E%27%28%29 .

    Vous devez remplacer le + par vous-même.

    Exemple:

     System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20")); 

    Pour plus d'informations sur cette publication:

    URLEncoder ne peut pas traduire le caractère de l'espace

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.