当前位置:  开发笔记 > 编程语言 > 正文

ASP.Net URLEncode Ampersand用于查询字符串

如何解决《ASP.NetURLEncodeAmpersand用于查询字符串》经验,为你挑选了2个好方法。

我需要重定向到一个url传递参数作为查询字符串.

这可以包括价值中的&符号.如

string value = "This & That";
Response.Redirect("http://www.example.com/?Value=" + Server.UrlEncode(value));

然而,这会返回http://www.example.com/?Value=This+&+That

我应该用什么来编码这个字符串?

编辑:感谢Luke指出显而易见的,代码确实正常工作.我道歉,毕竟我的问题不是一个有效的问题!

我将要访问的页面有很多旧的遗留代码,它显然正在进行某种编码和解码,使得它看起来好像我的urlencode不能正常工作.

不幸的是,我的解决方案是完全放弃使用&,直到可以重写有问题的代码.难道你不讨厌旧代码!



1> LukeH..:

该文件建议,Server.UrlEncode要正确处理好与符号.

我刚刚测试了您的确切代码,并且返回的字符串已正确编码:

http://www.example.com/?Value=This+%26+That


在没有Server变量的情况下,您还可以通过System.Web.HttpUtility访问urlencode/urldecode方法.

2> Dillie-O..:

技术上做:

value = value.Replace("&", "%26") 

会做的.

编辑:整个UrlEncode/HttpEncode方法似乎有一些棘手的问题,并没有完全解决问题.我前段时间写了一个简单的方法,可能会派上用场.这应该涵盖所有主要的编码问题,并且很容易编写"desanitizer".

Protected Function SanitizeURLString(ByVal RawURLParameter As String) As String

      Dim Results As String

      Results = RawURLParameter    

      Results = Results.Replace("%", "%25")
      Results = Results.Replace("<", "%3C")
      Results = Results.Replace(">", "%3E")
      Results = Results.Replace("#", "%23")
      Results = Results.Replace("{", "%7B")
      Results = Results.Replace("}", "%7D")
      Results = Results.Replace("|", "%7C")
      Results = Results.Replace("\", "%5C")
      Results = Results.Replace("^", "%5E")
      Results = Results.Replace("~", "%7E")
      Results = Results.Replace("[", "%5B")
      Results = Results.Replace("]", "%5D")
      Results = Results.Replace("`", "%60")
      Results = Results.Replace(";", "%3B")
      Results = Results.Replace("/", "%2F")
      Results = Results.Replace("?", "%3F")
      Results = Results.Replace(":", "%3A")
      Results = Results.Replace("@", "%40")
      Results = Results.Replace("=", "%3D")
      Results = Results.Replace("&", "%26")
      Results = Results.Replace("$", "%24")

      Return Results

End Function


不会结果= Results.Replace("%","%25")搞砸了它上面的那些.
推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有