c# - 如何转义url编码?

标签 c# asp.net url decode encode

我正在创建一个链接,该链接创建包含带有 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是书签的名字

urltitle 的值被输入到 2 个字段中。然后用户必须单击保存取消。 问题是当书签页面将值输入到字段中时,它将对其进行解码。 然后,如果您尝试保存,它不会让您保存,因为 url 值中的 pdfname 值中有一个空格。它需要链接没有任何空格。所以基本上,我希望它在字段中输入后仍然是 %20 而不是空格。

sourceautotitle 没有问题,只有 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/

相关文章:

asp.net - 如何使用 ASP.NET 创建 XML 文件并提示下载?

linux - Imagemagick ftp 和空间

url - 默认文档不显示完整的 url

c# - 确定某个 URL 是否位于某个目录中的正确方法是什么?

c# - 从 TCP 套接字读取数据未获取所有数据

c# - 有没有办法创建与给定 C# 正则表达式匹配的字符串?

asp.net - ASP.NET 网页站点中的 NuGet 包和 bin 文件夹

c# - 在一个报告查看器中呈现多个报告 (rdlc)

c# - 如何使用 LINQ 从选择中返回一行?

c# - 如何在 Entity Framework Core 7.0.2 (.NET 7.0.2) 中启用延迟加载?