2011-05-27 6 views
1

Je suis débutant à ceci et n'a pas pu trouver la réponse exacte. J'ai des caractères spéciaux dans une URL telle que,Comment représenter une URL de chaîne pour un caractère spécial?

"&", "#", "?" "<" 

il provoque un problème. (Si quelqu'un peut suggérer comment faire face à une telle situation, alors ce serait une aide supplémentaire). Mon principal problème est que, comment puis-je représenter un littéral de chaîne dans JAVA pour suivre le type d'URL?

"x###y" 

j'ai appris que nous devons mettre la valeur de code hex (en utilisant %). Quelqu'un peut-il suggérer cette réponse exacte pour résoudre ce problème d'URL?

Répondre

1
java.net.URLEncoder.encode(YOUR_STRING, "UTF-8"); 

Voir aussi this question un moyen de coder seulement la partie de l'URL que vous avez besoin:

1

La réponse dépend de l'emplacement des données dans l'URL. Il y aura différentes règles d'encodage pour différentes parties de l'URL.

La forme exacte peut également dépendre du format d'URI attendu par le serveur.

Paramètres dans la partie requête peut généralement être encodées comme application/x-www-form-urlencoded en utilisant la URLEncoder:

String query = URLEncoder.encode("key1", "UTF-8") 
      + "=" 
      + URLEncoder.encode("value1", "UTF-8") 
      + "&" 
      + URLEncoder.encode("key2", "UTF-8") 
      + "=" 
      + URLEncoder.encode("value2", "UTF-8"); 

Si vous avez besoin d'encoder dans d'autres parties de l'URI (la partie de chemin, ou la partie de fragment) lire this .

Questions connexes