我通常在使用参数值进行任何页面重定向之前使用代码_uri = Server.UrlEncode(_uri);
,但我不知道使用UrlEncode的重要性。我想知道使用UrlEncode的好处。
答案 0 :(得分:3)
URLEncode返回一个字符串,其中除了 - (连字符)_(下划线)以外的所有非字母数字字符,和。 (句点)已被百分号(%)替换,后跟两个对应于字符代码的十六进制数字和编码为加号(+)的空格。或者,空格可以编码为%20。 20是(16 * 2)+(1 * 0)=十进制的32,这是空格的ASCII码。
如果你写
Response.Write(Server.URLEncode("http://www.technologycrowds.com"));
然后结果会像这样
http%3A%2F%2Fwww%2Etechnologycrowdst%2Ecom
答案 1 :(得分:3)
考虑这样的网址:
http://example.com/index.aspx?redirectUrl=http://example.com/index.aspx?someValue=123
您将如何解析该网址?哪个://
将协议与地址分开?哪个?
将地址与值分开?它会很快混淆,因为查询字符串值中使用的字符在URL中具有重要意义。
相反,请考虑以下版本:
http://example.com/index.aspx?redirectUrl=http%3A%2F%2Fexample.com%2Findex.aspx%3FsomeValue%3D123
现在查询字符串值中使用的任何字符都没有其他重要的URL含义。它只是一个字符串,因此可以轻松解析整个URL。
网址编码值允许我们将这些值视为值,而不是URL本身的一部分。
答案 2 :(得分:0)
URL编码可确保所有浏览器都能正确传输URL字符串中的文本。某些浏览器可能会截断或损坏问号(?),&符号,斜杠标记(/)和空格等字符。
请参阅Microsoft文档:https://msdn.microsoft.com/en-us/library/zttxte6w(v=vs.110).aspx