Le codage Url est utilisé pour s'assurer que les symboles spéciaux inclus dans une URL (très probablement dans une chaîne de requête) ne sont pas interprétés par erreur comme ceux utilisés dans l'analyse et le traitement d'un URL. Par exemple, le symbole + est utilisé pour indiquer un espace dans une URL. Cependant, si vous aviez l'intention d'insérer un symbole + dans votre chaîne de requête, vous voudriez encoder cette chaîne de requête avant de l'envoyer à un navigateur.
Par exemple. Imaginez que vous avez écrit une page qui reçoit une équation mathématique sur la chaîne de requête et affiche cette équation sur la page.
L'URL pourrait être: http://yoursite.com/displayMath.aspx?equation=3+5
Le symbole + dans ce cas est destiné à être une partie significative de l'équation. Cependant, sans UrlEncode, il serait interprété comme représentant un espace. La lecture de cette valeur à partir de la chaîne de requête sur la page de réception donnerait "3 5", ce qui n'est pas ce qui était prévu. Au lieu de rediriger directement vers cette URL, vous souhaiterez d'abord encoder l'URL dans la requête. Vous pouvez écrire le code suivant:
string equation = "3+5";
string url = String.Format(@"http://yoursite.com/displayMath.aspx?equation={0}", equation);
string encodedUrl = Server.UrlEncode(url);
Response.Redirect(encodedUrl);
Cela garantirait qu'une Request.Querystring["equation"]
ultérieure recevrait l'équation intacte car tous les symboles spéciaux seraient d'abord codés. Je ne suis pas sûr de comprendre votre cas d'utilisation pour les URLs d'encodage. Si vous pouviez peut-être fournir plus d'informations sur ce que vous essayez d'accomplir, je tenterai d'y répondre plus complètement. Pour l'instant j'espère que cette information est utile.
27 questions et 0% accepter? Comme tu peux être cruel. – Matt
Pouvez-vous clarifier votre question? Demandez-vous comment fonctionne le codage d'URL? Ou pour une bibliothèque qui va le gérer pour vous? Ou avez-vous un cas d'utilisation spécifique où cela ne fonctionne pas? – atk
@envalid: Je ne pense pas que l'adjectif "cruel" soit approprié ici. Une meilleure description serait "désagréable, inconsidérée et incivile"! ;-) – Cerebrus