Rob*_*Day 20 c# asp.net query-string
我需要重定向到一个url传递参数作为查询字符串.
这可以包括价值中的&符号.如
string value = "This & That";
Response.Redirect("http://www.example.com/?Value=" + Server.UrlEncode(value));
Run Code Online (Sandbox Code Playgroud)
然而,这会返回http://www.example.com/?Value=This+&+That
我应该用什么来编码这个字符串?
编辑:感谢Luke指出显而易见的,代码确实正常工作.我道歉,毕竟我的问题不是一个有效的问题!
我将要访问的页面有很多旧的遗留代码,它显然正在进行某种编码和解码,使得它看起来好像我的urlencode不能正常工作.
不幸的是,我的解决方案是完全放弃使用&,直到可以重写有问题的代码.难道你不讨厌旧代码!
Luk*_*keH 23
该文件建议,Server.UrlEncode
要正确处理好与符号.
我刚刚测试了您的确切代码,并且返回的字符串已正确编码:
Dil*_*e-O 16
技术上做:
value = value.Replace("&", "%26")
Run Code Online (Sandbox Code Playgroud)
会做的.
编辑:整个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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
73016 次 |
最近记录: |