ome*_*ega 11 c# asp.net url encode decode
我正在创建一个链接,用于创建包含URL参数链接的URL参数.问题是我有这样的链接
http://mydomain/_layouts/test/MyLinksEdit.aspx?auto=true&source=
http://vtss-sp2010hh:8088/AdminReports/helloworld.aspx?pdfid=193
&url=http://vtss-sp2010hh:8088/AdminReports/helloworld.aspx?pdfid=193%26pdfname=5.6%20Upgrade
&title=5.6 Upgrade
Run Code Online (Sandbox Code Playgroud)
此链接转到书签添加页面,其中读取这些参数.
auto
是否要阅读以下参数
source
是你完成添加或取消后的去处
url
是书签链接
title
是书签的名称
的价值url
和title
获得进入2场.然后用户必须单击save
或cancel
.问题是当书签页面将值输入字段时,它将解码它们.然后,如果您尝试保存,它将不会让您保存,因为pdfname
值中的url
值中有一个空格.它需要链接没有任何空格.所以基本上,我想要它,以便在它进入现场之后,它仍然是%20
一个空间而不是空间.
有没有问题source
,auto
或者title
,只是url
...
有办法解决这个问题吗?就像我可以使用的特殊逃脱角色一样%20
?
注意:我无法修改书签页面.
我正在使用c#/ asp.net创建链接并转到它.
谢谢
eri*_*cdc 20
从.NET Framework 4.5开始,您就可以使用了WebUtility.UrlEncode
.
它驻留在System.dll
,因此它不需要任何其他引用.
它正确地转义了URL的字符,不像 Uri.EscapeUriString
它不会对字符串的长度有任何限制Uri.EscapeDataString
,因为它可以用于POST请求
System.Net.WebUtility.UrlEncode(urlText)
Run Code Online (Sandbox Code Playgroud)
另一种选择是
System.Uri.EscapeDataString()
Run Code Online (Sandbox Code Playgroud)
与 UrlEncode/UrlDecode 方法相比,Uri.EscapeDataString() 和 Uri.UnescapeDataString() 是安全的,并且在解码时不会将加号字符转换为空格。
来自另一个用户的一些细节:http : //geekswithblogs.net/mikehuguet/archive/2009/08/16/134123.aspx
UrlEncode
只需在传递 url 之前使用 HttpUtilty 的方法即可;
string encoded = HttpUtility.UrlEncode(url);
Run Code Online (Sandbox Code Playgroud)