如何编码URL?

10 c# asp.net

当我运行我的项目时,我得到了http://localhost:5973/PageToPageValuePass/Default.aspx 我想要编码URL的URL,因为有时我需要从页面到页面传输数据.当网址被编码时,它会提高可靠性.

Server.UrlEncode("http://www.google.com/c#");
Run Code Online (Sandbox Code Playgroud)

我明白了,但是如何使用它来帮助我编码网址呢?

csh*_*net 35

如果您的路径的编码部分:

System.Uri.EscapeUriString("c#")
Run Code Online (Sandbox Code Playgroud)

如果您的编码'参数':

String.Format( "http://something/?test={0}", System.Uri.EscapeDataString("c#") );
Run Code Online (Sandbox Code Playgroud)


RRU*_*RUZ 7

试试这个

  • 在ASP.NET中
    Server.UrlEncode("http://www.google.com/c#");
Run Code Online (Sandbox Code Playgroud)


Stu*_*son 3

URL 编码用于确保 url 中包含的特殊符号(最有可能在查询字符串中)不会被错误地解释为解析和处理 url 时使用的符号。例如,+ 符号用于指示 url 中的空格。但是,如果您打算将 + 符号作为查询字符串的一部分,那么您需要在将该查询字符串发送到浏览器之前对其进行编码。

例如。想象一下,您编写了一个页面,该页面接收查询字符串上的数学方程并在页面上显示该方程。

网址可能是: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 的用例。如果您可以提供有关您想要实现的目标的更多信息,我将尝试更全面地回答。现在我希望这些信息有用。