如何编码URL?
当我运行我的项目时,我得到了urlhttp://localhost:5973/PageToPageValuePass/Default.aspx
我想对url进行编码,因为有时我需要在页面之间传输数据。 当url被编码时,它会提高可靠性。
Server.UrlEncode("http://www.google.com/c#");
我明白了,但是如何使用它来帮助我编码url呢?
如果您的路径的编码部分:
System.Uri.EscapeUriString("c#")
如果您的编码’参数’:
String.Format( "http://something/?test={0}", System.Uri.EscapeDataString("c#") );
试试这个
- 在ASP.NET中
Server.UrlEncode("http://www.google.com/c#");
-
在WinForms中使用System.Web.dll
HttpUtility.UrlEncode("http://www.google.com/c#");
URL编码用于确保URL中包含的特殊符号(很可能在查询字符串中)不会被错误地解释为在解析和处理URL时使用的符号。 例如,+符号用于表示URL中的空格。 但是,如果您打算将+符号作为查询字符串的一部分,那么您需要在将该查询字符串发送到浏览器之前对其进行编码。
例如。 想象一下,您已经编写了一个页面,该页面在查询字符串上接收数学等式,并在页面上显示该等式。
url可能是:http: http://yoursite.com/displayMath.aspx?equation=3+5
在这种情况下,+符号旨在成为等式中有意义的部分。 但是,如果没有UrlEncode,它将被解释为代表空格。 从接收页面上的查询字符串中读取此值将产生“3 5”,这不是预期的。
您可能希望首先对请求进行URL编码,而不是直接重定向到该URL。 您可以编写以下代码:
string equation = "3+5";
string url = String.Format(@"http://yoursite.com/displayMath.aspx?equation={0}", equation);
string encodedUrl = Server.UrlEncode(url);
Response.Redirect(encodedUrl);
这将确保随后的Request.Querystring["equation"]
将完整地接收该等式,因为任何特殊符号将首先被编码。
我不确定我是否理解您编码url的用例。 如果您可以提供有关您想要实现的内容的更多信息,我将尝试更全面地回答。 现在我希望这些信息有用。