iOS : Comment faire le bon encodage d'URL?

Je ne suis pas en mesure d'ouvrir une URL dans UIWebView j'ai donc seached & trouve que j'ai besoin de coder l'URL, donc j'ai essayé de coder, mais j'ai face à problème dans le codage d'URL : l'adresse de Ma page est http://somedomain.com/data/Témp%20Page%20-%20Open.html (Ce n'est pas réel URL).

Je suis préoccupé par les %20 que j'ai essayé de remplacer à l'aide de stringByReplacingOccuranceOfString:@"" withString:@"" , à me donner l'URL que j'ai voulu comme http://somedomain.com/data/Témp Page - Open.html Cependant pas d'ouverture dans UIWebView, mais étonnamment, il s'ouvre dans Safari & FireFox parfait. Même que j'ai ouvert non encodée URL de son convertit automatiquement et ouvrez la page que je suis à la recherche d'.

J'ai google pour l'encodage de l'URL & c'points me à des résultats différents, j'ai déjà vérifié, mais aucun résultat, aidez-moi!! J'ai essayé différentes fonctions de réponses dans les différents codage d'URL question, mais il a juste changé tous les caractères spéciaux et faire mon URL comme, http%3A%2F%2Fsomedomain.com%2Fdata%2FT... qui ne s'ouvre pas dans UIWebView et même dans n'importe quel navigateur.

Il donne le Error Log dans UIWebView delegate

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { }

Code D'Erreur : 101
& Description : Erreur de Domaine=WebKitErrorDomain Code=101 "L'opération ne pouvait pas être complété. (WebKitErrorDomain erreur 101.)" UserInfo=0x6e4cf60 {}

  • L'URL ressemble, il est dans l'URL encodé au format déjà à l'exception de l'é-caractère qui doit probablement être codé en %c3%a9. Pourquoi cela fonctionne dans Safari, etc peut-être parce que les navigateurs de bureau est assez libérale avec des Url non valide et va essayer de les corriger pour vous, c'est à dire en supposant que les é doivent être codées dans l'URL.
  • Si collez l'adresse URL dans le navigateur, il va convertir %20 avec space et codent pas é, de Sorte qu'il n'a aucun problème avec ça!
  • Ce que vous voyez dans la barre d'URL n'est pas toujours le même qui va être envoyé au serveur, autre navigateur actuel de l'adresse URL de différentes manières. Essayez cette httpdump.com/texis/browserinfo/Témp.html et note que "l'URI de la Demande" est "/texis/browserinfo/T%C3%A9mp.html".
  • D'où vient l'URL viennent? Il semble être seulement partiellement échappé, qui est - franchement - de simples déchets d'entrée, et très difficile à travailler. Si vous ne spécifiez une URL réelle pour certains tests, il est encore plus difficile de trouver une réponse ici.
  • Eh bien, la URL j'ai posté ici, j'ai seulement changé son nom de domaine (à somedomain.com) autre que son exactement le même que le vrai URL. Cependant, avec un comportement étrange, il peut ouvrir avec les navigateurs dans mon MAC PC, aussi, je viens de vérifier sur Android (construit Dans le navigateur) & iPhone (safari) et sa fonctionne très bien. Il convertit URL et ouvrir la page. URL ressemble http://somedomain.com/data/mobile/index.html. Ne sais pas quel est le problème avec UIWebView.
  • Le problème est que ce n'est pas une URL valide. Il est à mi-chemin codé. L'é doit être échappé, mais les espaces sont déjà - et de s'échapper de nouveau juste coder ces % ainsi. Les navigateurs n'a probablement beaucoup de peaufinage pour obtenir plus de l'Url de droit que les gens jeter sur eux. Bien sûr, vous pouvez maintenant commencer à deviner et de peaufiner cette URL, mais vraiment, d'où tenez-vous que?

InformationsquelleAutor Hemang | 2012-09-29