我正在创建一个链接,该链接创建包含带有 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
此链接会转到一个书签添加页面,它会在其中读取这些参数。
auto
是否读取以下参数
source
添加或取消后去哪里
url
为书签链接
title
是书签的名字
url
和 title
的值被输入到 2 个字段中。然后用户必须单击保存
或取消
。
问题是当书签页面将值输入到字段中时,它将对其进行解码。
然后,如果您尝试保存,它不会让您保存,因为 url
值中的 pdfname
值中有一个空格。它需要链接没有任何空格。所以基本上,我希望它在字段中输入后仍然是 %20
而不是空格。
source
、auto
或 title
没有问题,只有 url
问题。 .
有办法解决吗?就像我可以用于 %20
的特殊转义字符一样?
注意:我不能修改书签页。
我正在使用 c#/asp.net 创建链接并转到它。
谢谢
最佳答案
从 .NET Framework 4.5 开始,您可以使用 WebUtility.UrlEncode
。
它位于 System.dll
中,因此不需要任何额外的引用。
与 Uri.EscapeUriString
不同,它正确地转义了 URL 的字符
它对字符串的长度没有任何限制,不像Uri.EscapeDataString
,所以它可以用于POST请求
System.Net.WebUtility.UrlEncode(urlText)
另一种选择是
System.Uri.EscapeDataString()
关于c# - 如何转义url编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241677/